2022 PROLOG APPLICATIONS CENSUS
Updated : 06 Nov 2022 @ 14:22:13
Laurent Gouzènes, sponsored by KM2 Conseil

Summary

1. DESCRIPTION

1.1. Introduction

This page contains a structured presentation of a survey or Prolog applications started in May 2022.
The collected data is presented below.
Number of projects as today : 59.
Many thanks to all the participants for the survey.
This is an ongoing work, please contribute if you know more applications.
This page is part of a larger work developped for and by the prolog community :


1.2. Methodology


The 2022 Survey

CONTRIBUTE !!
new form
census_form.htm
processing of the survey :
  1. results are stored in .json format for each application separately
  2. results are analysed and completed to find out domains, proper years, etc
  3. this html file is then generated from the all the collected data.


Contributions must be sent as a "name_of_application.json" valid file, according to the model presented here (one json file per application).

warning : not sure that all the http links included in the references are handled correctly by the processor. PPT presentation fo this survey

Short powerpoint presentation of the methodology and analysis of results. (HERE).

2. NAMES OF PROJECTS

Projects are sorted by name.

3. DOMAINS

Projects are grouped by keywords which are present in the various fields of the database. A project can appear in several domains.

3.1. Projects by field


---------------------- Business ( 4 projects / 6% in the domain) , keywords : sales, sell, sold, business, brand ----------------------


Company Name Standardizer (When Deployed,brand) Supply Chain Management
NeuralTax (When Deployed,brand) accounting, legal
Price Grouper (When Deployed,brand) Parts Management
SIGOLI (When Deployed,brand) computational molecular biology

---------------------- Classification ( 2 projects / 3% in the domain) , keywords : classif ----------------------


ODE Classifier (references,classif) Parts Management
SIGOLI (references,classif) computational molecular biology

---------------------- Decision ( 5 projects / 8% in the domain) , keywords : decision ----------------------


EMDS (organization,decision) GIS, environmental modelling
ErgoAI (organization,decision) Higher-level logic programming system implemented on top of XSB Prolog used for commercial applications in: configuration management, legal reasoning, financial planning, reasoning in defense applications, medical diagnosis, etc.
Ews (organization,decision) Used in any domain where English language statements (stored from what a user knows) are used to describe that particular domain whereby those facts can be tested and acted on by reading statements in Excel spreadsheet cells.
IBM Watson (organization,decision) question answering
WUENIC (organization,decision) decision support

---------------------- Design ( 6 projects / 10% in the domain) , keywords : engineering, architecture, CAD ----------------------


Alpino (references,engineering) unknown domain
CASSANDRA (references,CAD) Software & Systems Engineering
Flex Expert System toolkit (references,engineering) Knowledge-based Expert Systems
IBM Watson (references,architecture) question answering
PROSYN (references,CAD) Process Engineering, Chemical Industry
Spacial (references,CAD) design expert systems tools

---------------------- Engineering ( 5 projects / 8% in the domain) , keywords : engineering ----------------------


Alpino (organization,engineering) unknown domain
CASSANDRA (organization,engineering) Software & Systems Engineering
Flex Expert System toolkit (organization,engineering) Knowledge-based Expert Systems
PROSYN (organization,engineering) Process Engineering, Chemical Industry
Spacial (organization,engineering) design expert systems tools

---------------------- Expert Systems ( 6 projects / 10% in the domain) , keywords : expert, advis ----------------------


DES (organization,expert) Teaching, Research
Flex Expert System toolkit (organization,expert) Knowledge-based Expert Systems
KALM (organization,advis) Natural Language Processing
PROSYN (organization,advis) Process Engineering, Chemical Industry
Rfuzzy (organization,advis) Expert systems, Programming, Tools
Spacial (organization,advis) design expert systems tools

---------------------- Finance ( 6 projects / 10% in the domain) , keywords : loan, bank, credit, financ ----------------------


Alpino (references,bank) unknown domain
Causality Link (references,financ) model of the financial world
ErgoAI (references,financ) Higher-level logic programming system implemented on top of XSB Prolog used for commercial applications in: configuration management, legal reasoning, financial planning, reasoning in defense applications, medical diagnosis, etc.
ETALIS (references,financ) Complex Event Processing
MOVIS (references,bank) unknown domain
Pacioli (references,financ) accounting,auditing,XBRL,blockchain,NFT,fintech

---------------------- Generation of documents and programs ( 23 projects / 38% in the domain) , keywords : generat, document, parse, parsing ----------------------


Alpino (references,generat) unknown domain
BrailleMath (references,parsing) Automated Translation
Causality Link (references,parsing) model of the financial world
DeepFind (references,parsing) Programming, Research, Tools
DES (references,document) Teaching, Research
EMDS (references,parsing) GIS, environmental modelling
Ews (references,document) Used in any domain where English language statements (stored from what a user knows) are used to describe that particular domain whereby those facts can be tested and acted on by reading statements in Excel spreadsheet cells.
Flex Expert System toolkit (references,document) Knowledge-based Expert Systems
FTCLP (references,parsing) programming research tools
IBM Watson (references,parsing) question answering
KALM (references,parsing) Natural Language Processing
LHornSolver (references,parsing) programming research tools
LPdoc (references,generat) teaching generation of documents and programs programming tools
MOVIS (references,parsing) unknown domain
NtHorn (references,parsing) programming research tools
ODE Constructor (references,parsing) Domain Specific Ontology Constructor/Editor
Pacioli (references,parsing) accounting,auditing,XBRL,blockchain,NFT,fintech
Prolog Playground (references,parsing) teaching programming tools
Property Extractor (references,parsing) Semantic Knowledge Processing
pykythe (references,parsing) Type inferencer and code analyzer for Python
Recovup (references,parsing) Health
WR2QTP (references,parsing) Automated Software Porting
WUENIC (references,parsing) decision support

---------------------- Health ( 3 projects / 5% in the domain) , keywords : health, medicine, medical, drug, patholog, therap ----------------------


ErgoAI (description,therap) Higher-level logic programming system implemented on top of XSB Prolog used for commercial applications in: configuration management, legal reasoning, financial planning, reasoning in defense applications, medical diagnosis, etc.
MetaMap (description,medical) unknown domain
Recovup (description,medical) Health

---------------------- Knowledge Management ( 22 projects / 37% in the domain) , keywords : knowledge, representation, expert system, intelligence, ontolog ----------------------


Alpino (organization,representation) unknown domain
BIOCHAM (organization,knowledge) research and teaching in computational systems biology
Causality Link (organization,ontolog) model of the financial world
Cliopatra (organization,ontolog) Linked Data research
DES (organization,expert system) Teaching, Research
EMDS (organization,ontolog) GIS, environmental modelling
ErgoAI (organization,knowledge) Higher-level logic programming system implemented on top of XSB Prolog used for commercial applications in: configuration management, legal reasoning, financial planning, reasoning in defense applications, medical diagnosis, etc.
ETALIS (organization,ontolog) Complex Event Processing
Ews (organization,ontolog) Used in any domain where English language statements (stored from what a user knows) are used to describe that particular domain whereby those facts can be tested and acted on by reading statements in Excel spreadsheet cells.
Flex Expert System toolkit (organization,knowledge) Knowledge-based Expert Systems
KALM (organization,knowledge) Natural Language Processing
MOVIS (organization,ontolog) unknown domain
ODE Classifier (organization,ontolog) Parts Management
ODE Constructor (organization,ontolog) Domain Specific Ontology Constructor/Editor
Pacioli (organization,ontolog) accounting,auditing,XBRL,blockchain,NFT,fintech
Pi (organization,intelligence) unknown domain
Property Extractor (organization,ontolog) Semantic Knowledge Processing
PROSYN (organization,ontolog) Process Engineering, Chemical Industry
Rfuzzy (organization,ontolog) Expert systems, Programming, Tools
SIIUE (organization,ontolog) Higher Education institutional management and daily operations
Spacial (organization,ontolog) design expert systems tools
WUENIC (organization,knowledge) decision support

---------------------- Legal ( 3 projects / 5% in the domain) , keywords : legal, law ----------------------


ErgoAI (references,law) Higher-level logic programming system implemented on top of XSB Prolog used for commercial applications in: configuration management, legal reasoning, financial planning, reasoning in defense applications, medical diagnosis, etc.
NeuralTax (references,law) accounting, legal
Symbium (references,law) Computational Law

---------------------- Operations ( 20 projects / 33% in the domain) , keywords : operations, activit, process, daily, monthly, real-time ----------------------


CASSANDRA (references,real-time) Software & Systems Engineering
Causality Link (references,real-time) model of the financial world
CiaoPP (references,process) Programming Research Tools
DeepFind (references,real-time) Programming, Research, Tools
EMDS (references,real-time) GIS, environmental modelling
ETALIS (references,process) Complex Event Processing
Flex Expert System toolkit (references,process) Knowledge-based Expert Systems
FSA Utilities (references,process) unknown domain
ODE Classifier (references,real-time) Parts Management
ODE Constructor (references,real-time) Domain Specific Ontology Constructor/Editor
Pacioli (references,real-time) accounting,auditing,XBRL,blockchain,NFT,fintech
Property Extractor (references,real-time) Semantic Knowledge Processing
PROSYN (references,process) Process Engineering, Chemical Industry
pykythe (references,real-time) Type inferencer and code analyzer for Python
SIGOLI (references,real-time) computational molecular biology
SIIUE (references,real-time) Higher Education institutional management and daily operations
Spacial (references,real-time) design expert systems tools
SWMOD (references,real-time) unknown domain
THORONDIR (references,real-time) unknown domain
WUENIC (references,real-time) decision support

---------------------- Problem solving ( 6 projects / 10% in the domain) , keywords : sales, customer, problem ----------------------


IBM Watson (references,problem) question answering
Rfuzzy (references,problem) Expert systems, Programming, Tools
SIGOLI (references,problem) computational molecular biology
TA scheduler (references,problem) Automated Scheduling
WR2QTP (references,problem) Automated Software Porting
WUENIC (references,problem) decision support

---------------------- Programming ( 44 projects / 74% in the domain) , keywords : program, language, compil, software, specification ----------------------


Alpino (references,specification) unknown domain
BIOCHAM (references,compil) research and teaching in computational systems biology
BrailleMath (references,specification) Automated Translation
CASSANDRA (references,specification) Software & Systems Engineering
CiaoPP (references,program) Programming Research Tools
DeepFind (references,program) Programming, Research, Tools
DES (references,program) Teaching, Research
EMDS (references,specification) GIS, environmental modelling
Energy Analyzer (references,program) energy, programming, research, tools
ErgoAI (references,program) Higher-level logic programming system implemented on top of XSB Prolog used for commercial applications in: configuration management, legal reasoning, financial planning, reasoning in defense applications, medical diagnosis, etc.
ETALIS (references,program) Complex Event Processing
Ews (references,language) Used in any domain where English language statements (stored from what a user knows) are used to describe that particular domain whereby those facts can be tested and acted on by reading statements in Excel spreadsheet cells.
Flex Expert System toolkit (references,software) Knowledge-based Expert Systems
FSA Utilities (references,language) unknown domain
FTCLP (references,program) programming research tools
gamemaster (references,specification) General Game Playing
GTO (references,specification) unknown domain
IBM Watson (references,specification) question answering
KALM (references,program) Natural Language Processing
LHornSolver (references,specification) programming research tools
LPdoc (references,specification) teaching generation of documents and programs programming tools
Michelson Cost Analyzer (references,specification) blockchain programming research tools
MOVIS (references,specification) unknown domain
Muasm (references,specification) programming research tools
NeuralTax (references,specification) accounting, legal
NtHorn (references,specification) programming research tools
PECOS (references,specification) Programming Research Tools
PI-Horn (references,specification) programming research tools
Pi (references,specification) unknown domain
Prolog Playground (references,specification) teaching programming tools
Property Extractor (references,specification) Semantic Knowledge Processing
pykythe (references,specification) Type inferencer and code analyzer for Python
RAHFT (references,specification) programming research tools
Rfuzzy (references,specification) Expert systems, Programming, Tools
s(CASP) (references,program) Programming, Research, Tools
SIGOLI (references,specification) computational molecular biology
SIIUE (references,program) Higher Education institutional management and daily operations
Spacial (references,program) design expert systems tools
Spectector (references,specification) programming research tools
SWISH (references,program) Prolog education and sharing
SWMOD (references,program) unknown domain
Symbium (references,specification) Computational Law
TypeInference (references,program) programming, tools, research
WR2QTP (references,program) Automated Software Porting

---------------------- Real-Time ( 5 projects / 8% in the domain) , keywords : real-time ----------------------


Causality Link (references,real-time) model of the financial world
ETALIS (references,real-time) Complex Event Processing
SIGOLI (references,real-time) computational molecular biology
SWMOD (references,real-time) unknown domain
THORONDIR (references,real-time) unknown domain

---------------------- Research ( 31 projects / 52% in the domain) , keywords : university, research, proof, proving, formal ----------------------


Alpino (organization,formal) unknown domain
BIOCHAM (organization,research) research and teaching in computational systems biology
Causality Link (organization,research) model of the financial world
CiaoPP (organization,formal) Programming Research Tools
Cliopatra (organization,formal) Linked Data research
DeepFind (organization,formal) Programming, Research, Tools
DES (organization,formal) Teaching, Research
Energy Analyzer (organization,formal) energy, programming, research, tools
ErgoAI (organization,formal) Higher-level logic programming system implemented on top of XSB Prolog used for commercial applications in: configuration management, legal reasoning, financial planning, reasoning in defense applications, medical diagnosis, etc.
EYE (organization,proof) industry (healthcare, construction, ...)
Flex Expert System toolkit (organization,formal) Knowledge-based Expert Systems
FTCLP (organization,formal) programming research tools
GTO (organization,formal) unknown domain
IBM Watson (organization,research) question answering
KALM (organization,university) Natural Language Processing
LHornSolver (organization,formal) programming research tools
Michelson Cost Analyzer (organization,formal) blockchain programming research tools
Muasm (organization,formal) programming research tools
NtHorn (organization,formal) programming research tools
PECOS (organization,formal) Programming Research Tools
PI-Horn (organization,formal) programming research tools
Pi (organization,formal) unknown domain
ProB (organization,formal) unknown domain
RAHFT (organization,formal) programming research tools
s(CASP) (organization,formal) Programming, Research, Tools
SIIUE (organization,formal) Higher Education institutional management and daily operations
Spacial (organization,formal) design expert systems tools
Spectector (organization,formal) programming research tools
Symbium (organization,formal) Computational Law
TypeInference (organization,formal) programming, tools, research
WUENIC (organization,formal) decision support

---------------------- Scheduling ( 2 projects / 3% in the domain) , keywords : schedul ----------------------


SWMOD (organization,schedul) unknown domain
TA scheduler (organization,schedul) Automated Scheduling

---------------------- Teaching ( 11 projects / 18% in the domain) , keywords : teach, educat ----------------------


BIOCHAM (references,educat) research and teaching in computational systems biology
BrailleMath (references,educat) Automated Translation
DES (references,educat) Teaching, Research
Flex Expert System toolkit (references,educat) Knowledge-based Expert Systems
gamemaster (references,educat) General Game Playing
KALM (references,educat) Natural Language Processing
LPdoc (references,educat) teaching generation of documents and programs programming tools
Prolog Playground (references,educat) teaching programming tools
SIIUE (references,educat) Higher Education institutional management and daily operations
SWISH (references,educat) Prolog education and sharing
TA scheduler (references,educat) Automated Scheduling

---------------------- Tools ( 24 projects / 40% in the domain) , keywords : tool, platform ----------------------


Alpino (description,platform) unknown domain
BIOCHAM (description,platform) research and teaching in computational systems biology
CASSANDRA (description,tool) Software & Systems Engineering
Causality Link (description,platform) model of the financial world
CiaoPP (description,tool) Programming Research Tools
Cliopatra (description,platform) Linked Data research
DeepFind (description,tool) Programming, Research, Tools
DES (description,platform) Teaching, Research
Energy Analyzer (description,tool) energy, programming, research, tools
FSA Utilities (description,tool) unknown domain
gamemaster (description,tool) General Game Playing
GTO (description,tool) unknown domain
KALM (description,platform) Natural Language Processing
Michelson Cost Analyzer (description,tool) blockchain programming research tools
Muasm (description,tool) programming research tools
NtHorn (description,tool) programming research tools
PI-Horn (description,tool) programming research tools
ProB (description,platform) unknown domain
Prolog Playground (description,tool) teaching programming tools
pykythe (description,platform) Type inferencer and code analyzer for Python
RAHFT (description,tool) programming research tools
Rfuzzy (description,tool) Expert systems, Programming, Tools
SIGOLI (description,tool) computational molecular biology
Spectector (description,tool) programming research tools

No unclassified project

details of projects --> fields
Alpino :
Design, Engineering, Finance, Generation of documents and programs, Knowledge Management, Programming, Research, Tools.
BIOCHAM :
Knowledge Management, Programming, Research, Teaching, Tools.
BrailleMath :
Generation of documents and programs, Programming, Teaching.
CASSANDRA :
Design, Engineering, Operations, Programming, Tools.
Causality Link :
Finance, Generation of documents and programs, Knowledge Management, Operations, Real-Time, Research, Tools.
CiaoPP :
Operations, Programming, Research, Tools.
Cliopatra :
Knowledge Management, Research, Tools.
Company Name Standardizer :
Business.
DES :
Expert Systems, Generation of documents and programs, Knowledge Management, Programming, Research, Teaching, Tools.
DeepFind :
Generation of documents and programs, Operations, Programming, Research, Tools.
EMDS :
Decision, Generation of documents and programs, Knowledge Management, Operations, Programming.
ETALIS :
Finance, Knowledge Management, Operations, Programming, Real-Time.
EYE :
Research.
Energy Analyzer :
Programming, Research, Tools.
ErgoAI :
Decision, Finance, Health, Knowledge Management, Legal, Programming, Research.
Ews :
Decision, Generation of documents and programs, Knowledge Management, Programming.
FSA Utilities :
Operations, Programming, Tools.
FTCLP :
Generation of documents and programs, Programming, Research.
Flex Expert System toolkit :
Design, Engineering, Expert Systems, Generation of documents and programs, Knowledge Management, Operations, Programming, Research, Teaching.
GTO :
Programming, Research, Tools.
IBM Watson :
Decision, Design, Generation of documents and programs, Problem solving, Programming, Research.
KALM :
Expert Systems, Generation of documents and programs, Knowledge Management, Programming, Research, Teaching, Tools.
LHornSolver :
Generation of documents and programs, Programming, Research.
LPdoc :
Generation of documents and programs, Programming, Teaching.
MOVIS :
Finance, Generation of documents and programs, Knowledge Management, Programming.
MetaMap :
Health.
Michelson Cost Analyzer :
Programming, Research, Tools.
Muasm :
Programming, Research, Tools.
NeuralTax :
Business, Legal, Programming.
NtHorn :
Generation of documents and programs, Programming, Research, Tools.
ODE Classifier :
Classification, Knowledge Management, Operations.
ODE Constructor :
Generation of documents and programs, Knowledge Management, Operations.
PECOS :
Programming, Research.
PI-Horn :
Programming, Research, Tools.
PROSYN :
Design, Engineering, Expert Systems, Knowledge Management, Operations.
Pacioli :
Finance, Generation of documents and programs, Knowledge Management, Operations.
Pi :
Knowledge Management, Programming, Research.
Price Grouper :
Business.
ProB :
Research, Tools.
Prolog Playground :
Generation of documents and programs, Programming, Teaching, Tools.
Property Extractor :
Generation of documents and programs, Knowledge Management, Operations, Programming.
RAHFT :
Programming, Research, Tools.
Recovup :
Generation of documents and programs, Health.
Rfuzzy :
Expert Systems, Knowledge Management, Problem solving, Programming, Tools.
SIGOLI :
Business, Classification, Operations, Problem solving, Programming, Real-Time, Tools.
SIIUE :
Knowledge Management, Operations, Programming, Research, Teaching.
SWISH :
Programming, Teaching.
SWMOD :
Operations, Programming, Real-Time, Scheduling.
Spacial :
Design, Engineering, Expert Systems, Knowledge Management, Operations, Programming, Research.
Spectector :
Programming, Research, Tools.
Symbium :
Legal, Programming, Research.
TA scheduler :
Problem solving, Scheduling, Teaching.
THORONDIR :
Operations, Real-Time.
TypeInference :
Programming, Research.
WR2QTP :
Generation of documents and programs, Problem solving, Programming.
WUENIC :
Decision, Generation of documents and programs, Knowledge Management, Operations, Problem solving, Research.
gamemaster :
Programming, Teaching, Tools.
pykythe :
Generation of documents and programs, Operations, Programming, Tools.
s(CASP) :
Programming, Research.

3.2. Statistics by domain

TOTAL : 59 projects.
Domain
% # Projects
Keywords
Programming
74%
44
program, language, compil, software, specification
Research
52%
31
university, research, proof, proving, formal
Tools
40%
24
tool, platform
Generation of documents and programs
38%
23
generat, document, parse, parsing
Knowledge Management
37%
22
knowledge, representation, expert system, intelligence, ontolog
Operations
33%
20
operations, activit, process, daily, monthly, real-time
Teaching
18%
11
teach, educat
Design
10%
6
engineering, architecture, CAD
Problem solving
10%
6
sales, customer, problem
Expert Systems
10%
6
expert, advis
Finance
10%
6
loan, bank, credit, financ
Decision
8%
5
decision
Engineering
8%
5
engineering
Real-Time
8%
5
real-time
Business
6%
4
sales, sell, sold, business, brand
Legal
5%
3
legal, law
Health
5%
3
health, medicine, medical, drug, patholog, therap
Classification
3%
2
classif
Scheduling
3%
2
schedul
Speech
0%
0
speech

4. APPLICATIONS BY YEAR

Warning some errors may occur because of automation.
 Year 
Center Projects
1985
(1 )

PROSYN Knowledge-based artificial intelligence (AI) system for process design
1986
(1 )

CiaoPP Program processing framework for debugging, analysis, verification, and optimization tasks
1989
(1 )

Flex Expert System toolkit Flex allows domain experts to build knowledge based expert systems
1991
(1 )

Pi Pi is an interactive proof editor using partial inductive definitions with typed higher-order terms as its meta logic. It can accept semantic and syntactic definitions for object logics and allows a user to interactively develop and edit proofs. Proofs are displayed on the screen as proof trees. Note: Pi is interesting in that it is a completely pure logic program also for input/output which is done using streams implemented as lazy lists
1992
(2 )

MetaMap Identify concepts in UMLS Metathesaurus encountered in free text, especially PubMed citations and clinical notes
THORONDIR THORONDIR identifies radar signatures from measured radar parameter data. It is a rare use of Prolog in a military real-time system requiring a fast response time
1995
(1 )

EMDS The Ecosystem Management Decision Support (EMDS) system is an application framework for designing and implementing spatially enabled knowledge-based decision support systems for environmental analysis and planning at any geographic scale(s).
1996
(2 )

FSA Utilities FSA Utilities is a collection of utilities to manipulate regular expressions, finite-state automata and finite-state transducers. Manipulations include automata construction from regular expresssions, determinization (both for finite-state acceptors and finite-state transducers), minimization, composition, complementation, intersection, Kleene closure, etc. Various visualization tools are available to browse finite-state automata. Interpreters are provided to apply finite automata. Finite automata can also be compiled into stand-alone C programs. FSA6 extends FSA5 by allowing predicates on arcs instead of atomic symbols
LPdoc Automatic program documentation and web site generator for (C)LP systems
1997
(1 )

GTO GTO is a formal methods tool. It can analyse specifications and system models written in linear time predicate logic with finite quantification domains. It offers animation/simulation of models, proofs using external SAT solvers and exploration of (counter)models. It can also export models to Isabelle for interactive proof. It has been used industrially in a number of projects. Today it is a research tool.
1999
(2 )

CASSANDRA CASSANDRA is a platform for advanced engineering applications such as executable specifications (simulations), effort estimation, model reviews, consultancy semantics exploration, games and more.
Ews Use of Natural language (NL) to perform human tasks in computing by reading English language text stored by users in text databases, SQL databases, and Excel spreadsheets databases. Spreadsheet cells can contain several English language statements (sentences) whereby those sentences are read by the computer which may direct any statement in the spreadsheet cell to start to read another cell which can then read text, SQL statements or text in spreadsheet cells that may be attached to files, exe(s), word documents, and other MS or non-MS files, and URLs. Software agent statements I.e.: “agentcar show me a picture or a red car with a 305-horsepower engine.” Read a statement in a cell and have it so the statement transfers data from a remote spreadsheet on the Internet via the software agent designated statement to the sending spreadsheet cell. Most importantly, consider any domain of knowledge, chemical, mechanical, electrical, computing etc. and translate those facts and statements stored in Excel spreadsheet so that logic testing of those statements can be made resulting in decisions from rows and columns wherein English language statements from the spreadsheet cells are sent (via software agent statements) to other cells or spreadsheets on the local computer or computer on their networks.
2000
(3 )

Alpino Alpino contains a dependency parser for Dutch, and a Dutch generator, as well as a large number of tools for working with Dutch dependency treebanks
ErgoAI ErgoAI is a higher-level logic programming system implemented on top of XSB Prolog developed by CoherentKnowledge Systems, Inc. It is the newest reincarnation of Flora-2 developed at Stony Brook University on top of XSB Prolog, including: object-oriented programming, defeasible reasoning, transaction logic, incremental updates, a natural language programming language, and many more higher-level logics. It has been used in many commercial and research applications for private companies, research labs, and governmental agencies, in applications, such as: configuration management, legal reasoning, financial planning, reasoning in defense applications, medical diagnosis, etc.
MOVIS Describe and define logic rules in a high-level format accessible by non-programmers, while providing full computational power. Execute rule models to provide answers and solution to calls (questions) from credit origination systems, or whatever system that needs to execute logic rules
2001
(1 )

ODE Classifier This is a Bayesian-like classifier of short textual part descriptions that maps a text description to nodes in a taxonomy of parts containing c. 60,000 nodes. It includes a GUI to edit the ontology that drives the classifier.
2002
(1 )

BIOCHAM software platform for formal modeling, analyses and syntheses chemical reaction networks
2003
(5 )

DES The Datalog Educational System (DES) was originally developed to teach deductive databases in the absence of a handy Datalog interpreter. Nowadays is also used as a research test-bed and used in several application domains.
ODE Constructor This interactive application allows a user to create/edit an ontology that drives the XSB extractor to extract and standardize part properties from text.
ProB ProB is a validation tool for the B-Method and various other related formal methods.
Property Extractor This application extracts from free text references to Specifications and Standards, materials, and processes.
SIIUE Run the entire information system for a University, including all aspects of academic and research-related activity
2004
(3 )

Cliopatra Integrated platform for development of RDF based applications
Price Grouper It takes a number of records for a single part that include its price as sold by some supplier. The quantity that the price varies, often for 1, but sometimes for packages containing 10 or 12 or 144 or 2000. The grouper uses heuristics to attempt to group the records into groups of the same quantity.
TA scheduler Automatically schedules about 80 teaching assistants to approximately 200 courses taking into account skills, enrollment numbers, etc.
2005
(4 )

BrailleMath Automatically convert Braille Document describing mathematics and text into print-pdf. The idea is to help blind teachers of blind students studying math be able to grade their homework.
Company Name Standardizer Take purported name of a company and standardize it to common form.
TypeInference Infers a well-typing for a Prolog program.
gamemaster Comprehensive website with educational resources, game description language, game analysis and optimization tools, game playing software, and infrastructure for administering general game playing competitions.
2006
(1 )

EYE EYE is a reasoning engine supporting the Semantic Web layers https://www.w3.org/DesignIssues/diagrams/sweb-stack/2006a
2007
(3 )

ETALIS Streams of events appear increasingly today in various Web applications such as news feeds, sensor data streams, geospatial information, on-line financial data, etc. Event Processing (EP) is concerned with timely detection of compound events within streams of simple events. We developed ETALIS and EP-SPARQL languages for specifying patterns for detecting composed events from simpler events by means of deductive rules.ETALIS is implemented in Prolog. The engine run on many Prolog systems: XSB, SWI, YAP, SICStus, tuProlog and LPA Prolog.
IBM Watson On February 14-16, 2011, the IBM Watson question answering system won the Jeopardy! Man vs. Machine Challenge by defeating two former grand champions, Ken Jennings and Brad Rutter. Prolog was the ideal choice for conveniently express pattern matching rules over the parse trees and other annotations (such as named entity recognition results) due to its simplicity, expressiveness, and the capacity to query these rules efficiently.
SIGOLI A methodology for discovery of diagnostic short DNA fragments, which after having solved spectacularly the problem that initially motivated it (plant pathogen identification) revealed itself also successful in surprisingly many other areas, including coronaviruses detection.
2008
(3 )

Energy Analyzer Tool for verifying and visualizing the energy consumption of programs
Rfuzzy Simple and Expressive Fuzzy Tool
WR2QTP Automatically translate test scripts written in WinRunner (an old test-scripting language) to QTP (a more modern test-scripting language).
2009
(1 )

WUENIC The system is a set of logical rules that assists WHO and UNICEF in estimating annual, global, country by country, infant immunization coverage.
2013
(1 )

FTCLP FTCLP: A Failure-based Tabling Interpreter for Constraint Logic Programs based on Interpolation
2014
(1 )

SWISH Provide an online educational environment as well as a shared data exploration environment
2016
(4 )

DeepFind DeepFind is a semantic code browser
LHornSolver An abstraction-refinement algorithm for solving non-linear Horn clauses using only a linear Horn clause solver
RAHFT Refinement of Abstraction in Horn clauses using Finite Tree automata (RAHFT)
SWMOD Select the best test-case candidate in real-time. Determine the order and which robot to execute the robot on. Make sure each test-case over time will be executed.
2017
(2 )

pykythe Analyzes a Python program and its imports, and generates a database of facts (using the Kythe data schema), which can be used by code browsers, refactoring tools, etc.
s(CASP) The s(CASP) system is a top-down interpreter for ASP programs with constraints
2018
(6 )

KALM Knowledge Authoring for Logic Machines (KALM) system allows knowledge authoring with the aim of endowing domain experts with tools that would allow them to translate their knowledge into logic.
Muasm Translator of x64 into muASM programs for static analysis
PECOS CHC solver
PI-Horn Preconditions inferrer for Horn clauses (PI-Horn)
Spectector Spectector is a tool for reasoning about information flows produced by speculatively executed instructions
Symbium Automated compliance management for residential construction
2019
(2 )

NeuralTax Answer to tax and accounting questions under U.S. tax law and Generally Accepted Accounting Principles (GAAP)
Spacial Spatial reasoner is a top-down interpreter for Building Information Modeling (BIM) models.
2020
(2 )

Causality Link collective intelligence in finance
Causality Link’s AI-powered platform collects millions of documents in real-time to find explicit cause-and-effect statements relating indicators and events that only humans can make. This model of the forces acting on the financial world aggregates the knowledge of thousands of authors into a single deductive system. Combining these causal links with predictive analytics provides valuable insights and forecasts on companies, industries and macroeconomic topics that cannot be generated with traditional data and sentiment.

Michelson Cost Analyzer Analyzer and verifier for gas and storage consumption in smart contracts written in the Michelson language
2021
(3 )

NtHorn Preconditions Generator for Non-termination
Pacioli validate standard financial reports with extensible ruleset, operating in a blockchain-coordinated network of engines
Recovup Assistance in generating self-help exercises (Musculoskeletal disorders)
2022
(1 )

Prolog Playground An in-browser environment for editing and running Prolog programs

5. PROJECTS

You can click on the ∑ symbol to go back to the summary
Applications are sorted by alphabetical order.

Detailed list of all projects


project : Alpino

Project Description References Dates People Resources
Alpino
purpose : Alpino contains a dependency parser for Dutch, and a Dutch generator, as well as a large number of tools for working with Dutch dependency treebanks
description : Program for syntactic analysis and production of Dutch

references : Gosse Bouma, Gertjan van Noord, Robert Malouf. Alpino: Wide Coverage Computational Analysis of Dutch. In: Computational Linguistics in the Netherlands CLIN 2000. 2001.
Leonoor van der Beek, Gosse Bouma, Robert Malouf, Gertjan van Noord. The Alpino Dependency Treebank. In: Mariët Theune, Anton Nijholt, Hendri Hondorp (editors). Computational Linguistics in the Netherlands CLIN 2001. Selected papers from the Twelfth CLIN Meeting. Rodopi 2002.
Robbert Prins and Gertjan van Noord. Reinforcing Parser Preferences through Tagging. In special issue on Evolutions in Parsing of the journal Traitement Automatique des Langues volume 44(3) 2003, pages 121-139. 2004.
Finite Automata for Compact Representation of Tuple Dictionaries. Theoretical Computer Science. Volume 313, Issue 1, Pages 45--56. 2002.
Robert Malouf, Gertjan van Noord. Wide Coverage Parsing with Stochastic Attribute Value Grammars. In: IJCNLP-04 Workshop Beyond Shallow Analyses - Formalisms and statistical modeling for deep analyses. 2004.
Gertjan van Noord. Error Mining for Wide-Coverage Grammar Engineering. In: ACL 2004, Barcelona. 2004.
Gertjan van Noord. At Last Parsing Is Now Operational. In: Piet Mertens, Cedrick Fairon, Anne Dister, Patrick Watrin (editors): TALN06. Verbum Ex Machina. Actes de la 13e conference sur le traitement automatique des langues naturelles. Page 20--42. 2006.
Gertjan van Noord. Using Self-Trained Bilexical Preferences to Improve Disambiguation Accuracy. In: Proceedings of the Tenth International Conference on Parsing Technologies. IWPT 2007, Prague. Pages
1-
-10. 2007.
Gertjan van Noord, Learning Efficient Parsing. In: EACL 2009. The 12th Conference of the European Chapter of the Association for Computational Linguistics. 30 March - 3 April 2009, Athens, Greece. pp 817-825. 2009.
Daniël de Kok, Jianqiang Ma and Gertjan van Noord, A generalized method for iterative error mining in parsing results. In: ACL2009 Workshop Grammar Engineering Across Frameworks (GEAF), Singapore, 2009.
Gertjan van Noord. Self-trained Bilexical Preferences to Improve Disambiguation Accuracy. In: Harry Bunt, Paola Merlo and Joakim Nivre (editors), Trends in Parsing Technology. Dependency Parsing, Domain Adaptation, and Deep Parsing. Springer Verlag. pp 183-200. 2010.
Daniël de Kok and Gertjan van Noord. A Sentence Generator for Dutch. In: Proceedings of the 20th Meeting of Computational Linguistics in the Netherlands. 2010.
Barbara Plank and Gertjan van Noord. Dutch Dependency Parser Performance Across Domains. In: Proceedings of the 20th Meeting of Computational Linguistics in the Netherlands. 2010.
Daniël de Kok and Barbara Plank and Gertjan van Noord. Reversible Stochastic Attribute-value Grammars. In: ACL 2011.
Daniël de Kok and Gertjan van Noord. Mining for Parsing Failures. In: Martijn Wieling, Martin Kroon, Gertjan van Noord, Gosse Bouma (editors), From Semantics to Dialectometry. Festschrift in honor of John Nerbonne. College Publications. 2017.
year : 2000-2022

year_deployed : 2000



use : free





contact : Gertjan van Noord
address : University of Groningen, PO BOX 716, 9700 AS Groningen, Netherlands
telephone : +315032637811
email : g.j.m.van.noord@rug.nl
prolog : SICStus 3; SWI-Prolog 6
platform : Windows, Linux, macOS (distributed as a Docker image)
other_languages : C, C++, Perl, Python, Go, tcl/tk
lines (lines): 2404087
predicates (QTY): 6374
development_effort (MY): NA
maintenance_effort (MY): NA

project : BIOCHAM

Project Description References Dates People Resources
BIOCHAM domain : research and teaching in computational systems biology
purpose : software platform for formal modeling, analyses and syntheses chemical reaction networks
description : Implemented in SWI-Prolog since BIOCHAM-4 in 2017. Implemented in GNU-Prolog up to BIOCHAM-3 no longer maintained since 2017.

references : http://lifeware.inria.fr/biocham4/, François Fages, Sylvain Soliman. Formal Cell Biology in BIOCHAM. In 8th Int. School on Formal Methods for the Design of Computer, Communication and Software Systems: Computational Systems Biology SFM'08, pages 54–80, volume 5016 of Lecture Notes in Computer Science. Springer-Verlag, 2008. http://lifeware.inria.fr/~fages/Papers/FS08sfm.pdf , Laurence Calzone, François Fages, Sylvain Soliman. BIOCHAM: An Environment for Modeling Biological Systems and Formalizing Experimental Knowledge. Bioinformatics, 22(14):1805–1807, 2006. http://lifeware.inria.fr/~fages/Papers/bioinformatics.pdf, François Fages, Sylvain Soliman, Nathalie Chabrier-Rivier. Modelling and Querying Interaction Networks in the Biochemical Abstract Machine BIOCHAM. Journal of Biological Physics and Chemistry, 4(2):64–73, 2004. http://lifeware.inria.fr/~fages/Papers/FSC04jbpc.pdf, Mathieu Hemery, François Fages, Sylvain Soliman. Compiling Elementary Mathematical Functions into Finite Chemical Reaction Networks via a Polynomialization Algorithm for ODEs. In CMSB'21: Proceedings of the nineteenth international conference on Computational Methods in Systems Biology, Lecture Notes in BioInformatics. Springer-Verlag, 2021. François Fages. Artificial Intelligence in Biological Modeling. In A Guided Tour of Artificial Intelligence Research, Volume III: Interfaces and Applications of AI. Springer-Verlag, 2020. http://hal.inria.fr/hal-01409753, year : 2002

year_deployed : 2002
range_deployed : 2003-2022
range_development : 2002-2022

use : research, teaching, worldwide use since 2004





contact : François Fages
address : Inria Saclay 1 rue Honoré d'Estienne d'Orves 91120 Palaiseau
telephone : xxxxxxxxxxx
email : Francois.Fages@inria.fr
prolog : prolog
platform : web server, docker image,linux, Mac OS, windows
other_languages : C++
lines (lines): 43000



project : BrailleMath

Project Description References Dates People Resources
BrailleMath domain : Automated Translation
purpose : Automatically convert Braille Document describing mathematics and text into print-pdf. The idea is to help blind teachers of blind students studying math be able to grade their homework.
description : The software includes a parser for Nemeth Math Braille Notation. It was thought impossible to build a parser for Nemeth Math notation as the language is context sensitive. It was possible to build the parser with Prolog, of course.

references : Arthur I. Karshmer, Gopal Gupta, Sandy Geiger, Chris Weaver: Reading and Writing Mathematics: the MAVIS Project. Proc. International ACM Conference on Assistive Technologies 1998: 136-143 year : 2005

year_deployed : 2005
range_deployed : 2005-15
range_development : 1998-2014

use : product





contact : Gopal Gupta
address : 8200 Chambray Ct, Plano, TX 75025
telephone : +19723907329
email : profgopalgupta@gmail.com
prolog : prolog
platform : windows
other_languages : C++
lines (lines): 2000
predicates (QTY): 300
development_effort (MY): 1
maintenance_effort (MY): number

project : CASSANDRA

Project Description References Dates People Resources
CASSANDRA domain : Software & Systems Engineering
purpose : CASSANDRA is a platform for advanced engineering applications such as executable specifications (simulations), effort estimation, model reviews, consultancy semantics exploration, games and more.
description : The platform consists of a set of core services such as an active UML-based declarative repository, a fuzzy inference engine, a common sense database with inference engine based on WordNet plus a set of core services for GUI tasks, persistency, XML processing, licensing etc. Furthermore, the platform supports a set of ''drivers'' to get access to various commercial modeling tools.

references : - https://www.knowgravity.com/pdf-e/CASSANDRA Insights.pdf, - https://www.knowgravity.com/pdf-e/CASSANDRA Overview 2001.pdf, - http://dlr.de/fs/Portaldata/16/Resources/dokumente/vk/Vortrag_Schacher_050203.pdf, - https://www.omg.org/mda/mda_files/KnowGravity2004.pdf, year : 1999

year_deployed : 1999



use : Free standalone plus part of a commercial product





contact : Markus Schacher
address : Hohlstrasse 534
telephone : +41444342000
email : markus.schacher@knowgravity.com
prolog : LPA WinProlog
platform : Windows
other_languages : XML/XSL, COM
lines (lines): 60000
predicates (QTY): 10000
development_effort (MY): 2
maintenance_effort (MY): 1

project : Causality Link

Project Description References Dates People Resources
Causality Link domain : model of the financial world
purpose : collective intelligence in finance
Causality Link’s AI-powered platform collects millions of documents in real-time to find explicit cause-and-effect statements relating indicators and events that only humans can make. This model of the forces acting on the financial world aggregates the knowledge of thousands of authors into a single deductive system. Combining these causal links with predictive analytics provides valuable insights and forecasts on companies, industries and macroeconomic topics that cannot be generated with traditional data and sentiment.
description : one piece of a large NLU pipeline
NLP analyser to extract information, KPI, etc

references : https://www.causalitylink.com,
example : https://research-center.amundi.com/files/nuxeo/dl/4b06a0f4-9188-4f1f-8433-4cbad618f8c4,
year : 2020

year_deployed : 2020
range_deployed : 2016-2022
range_development : 2007-2022

use : SaaS commercial application





contact : Pierre Haren
address : address
telephone : +xxxxxxxxxxx
email : pierre@causalitylink.com
prolog : prolog
platform : windows, AWS
other_languages : Java, C, javscript, etc
lines (lines): > 100,000
predicates (QTY): number
development_effort (MY): >10 man-years
maintenance_effort (MY): ongoing

project : CiaoPP

Project Description References Dates People Resources
CiaoPP domain : Programming Research Tools
purpose : Program processing framework for debugging, analysis, verification, and optimization tasks
description : CiaoPP is a program processor framework that can perform a large number of debugging, analysis, verification, and optimization tasks. This includes inference of properties, static and dynamic discovery of errors, verification of assertions, certification of absence of run-time errors, and several types of source-to-source program transformations. CiaoPP is both a standalone application and a a framework for developing program processing tools. CiaoPP was designed initially for processing Prolog programs, but it has also been used to develop tools for processing other programming languages, via transformation to Horn clauses.

references :
[1]
https://github.com/ciao-lang/ciaopp,
[2]
M. V. Hermenegildo, G. Puebla, F. Bueno, P. Lopez-Garcia. Integrated Program Debugging, Verification, and Optimization Using Abstract Interpretation (and The Ciao System Preprocessor). Science of Computer Programming, Vol. 58, Num.
1-
2, pages 115-140, Elsevier North-Holland, October 2005.
[3]
M.A. Sanchez-Ordaz, I. Garcia-Contreras, V. Perez-Carrasco, J. F. Morales, P. Lopez-Garcia, M. V. Hermenegildo. VeriFly: On-the-fly Assertion Checking via Incrementality. Theory and Practice of Logic Programming, Vol. 21, Num. 6, pages 768-784, Cambridge U. Press, September 2021. Special Issue on ICLP'21.
year : 1986

year_deployed : 1986

range_development : 1986-present

use : Open source, LGPL





contact : Manuel Hermenegildo


email : manuel.hermenegildo@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 118659 (base system, not including libraries), 381428 with extensions and front ends



project : Cliopatra

Project Description References Dates People Resources
Cliopatra domain : Linked Data research
purpose : Integrated platform for development of RDF based applications
description : Cliopatria was originally developed as an application to illustrate the value of integrating cultural heritage collections with background knowledge from the Getty foundation and other sources. After the project the domain specific code was removed, turning the system into a general purpose RDF store that may be accessed in SPARQL as well as from Prolog. It allows for building web based services that combine RDF data with Prolog based reasoners.

references : Wielemaker, Jan et al. ‘ClioPatria: A SWI-Prolog Infrastructure for the Semantic Web’. 1 Jan. 2016 : 529 – 541. year : 2004

year_deployed : 2004
range_deployed : 2006-
range_development : 2004-2010

use : Personal use/ in-House use / Free/public domain/ Licensed/ Sold product ... and/or more information





contact : Jan Wielemaker


email : jan@swi-prolog.com
prolog : SWI-Prolog
platform : many
other_languages : JavaScript
lines (lines): 42,000
predicates (QTY): number
development_effort (MY): 5
maintenance_effort (MY): 1

project : Company Name Standardizer

Project Description References Dates People Resources
Company Name Standardizer domain : Supply Chain Management
purpose : Take purported name of a company and standardize it to common form.
description : Uses about 50,000 facts describing brand names, company ownership, and other company aliases, along with standard string matching with edit distancing to rank order best matches. It handles the names of hundreds of thousands of companies.

references : www.xsb.com for high level descriptions of applications standardized data is used in. year : 2005

year_deployed : 2005
range_deployed : 2005-present
range_development : 2005-2006

use : Tool by knowledge Engineers with XSB, Inc. to create standard company names as data to drive other supply chain applications.





contact : David S. Warren


email : warren@xsb.com
prolog : XSB Prolog
platform : windows,linux
other_languages : SQL-DB
lines (lines): 2500 code + 50,000 data
predicates (QTY): ?
development_effort (MY): 0.5
maintenance_effort (MY): 0.5

project : DeepFind

Project Description References Dates People Resources
DeepFind domain : Programming, Research, Tools
purpose : DeepFind is a semantic code browser
description : DeepFind is a tool that allows searching code repositories and libraries by querying for semantic characteristics of the code. This is in contrast with traditional code search engines are based on syntactic techniques such as signature matching or keyword extraction. In DeepFind the semantic characteristics of the code are obtained automatically from the code itself. Program units are pre-processed using static analysis techniques, based on abstract interpretation, obtaining safe semantic approximations. An assertion-based code query language is used to express desired semantic characteristics of the code as partial specifications. Relevant code is found by comparing such partial specifications with the inferred semantics for program elements. Being semantics-based, the approach used in DeepFind copes better with syntactic code differences, is fully automatic, and can be effective even in the absence of user annotations or documentation.

references :
[1]
https://github.com/ciao-lang/deepfind,
[2]
I. Garcia-Contreras, J. F. Morales, M. V. Hermenegildo. Semantic Code Browsing. Theory and Practice of Logic Programming, Vol. 16, Num.
5-
6, pages 721-737, Cambridge U. Press, September 2016.
year : 2016

year_deployed : 2016

range_development : 2016-present

use : open source, LGPL





contact : Isabel Garcia-Contreras

telephone : isabel.garcia@protonmail.com
email : University of Waterloo
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 3.5K (+ the CiaoPP libraries)



project : DES

Project Description References Dates People Resources
DES domain : Teaching, Research
purpose : The Datalog Educational System (DES) was originally developed to teach deductive databases in the absence of a handy Datalog interpreter. Nowadays is also used as a research test-bed and used in several application domains.
description : DES is a free, opensource, multiplatform, portable, in-memory, Prolog-based implementation of a deductive database system. Its current release can be downloaded from des.sourceforge.net, and an online version can be tried at desweb.fdi.ucm.es. DES includes several query languages: Datalog, SQL, Relational Algebra, Tuple and Domain Relational Calculi. All these languages can query a common database, which can be either local or an external database connected via ODBC. A fuzzy version of Datalog is also supported. Hypothetical reasoning is included, both in SQL, Datalog, and fuzzy Datalog. To help students in learning SQL, it includes a semantic SQL checker which provides warning messages about possibly ill-constructed SQL sentences. DES features tabling, types, integrity constraints, stratified negation, persistency, full-fledged arithmetic, ODBC connections to relational databases, novel approaches to Datalog and SQL declarative debugging, test case generation for SQL views, null value support, outer join, and aggregate predicates and functions. This system is used world-wide in many universities for teaching deductive databases, and used as a test-bed for research (Mozilla leaks, smart grid networks, deductive data warehouses, declarative debugging, ...)

references : Some selected references are:
1-
General description (though outdated) of DES. http://journal.ub.tu-berlin.de/eceasst/article/view/819, . F. Sáenz-Pérez, ''DES: A Deductive Database System,'' Electronic Notes on Theoretical Computer Science, vol. 271, pp. 63–78, March 2011.
2-
Declarative debugging of Datalog. http://www.fdi.ucm.es/profesor/fernan/FSP/CGS08.pdf, R. Caballero, Y. García-Ruiz, and F. Sáenz-Pérez, ''A Theoretical Framework for the Declarative Debugging of Datalog Programs,'' in Intl. Workshop on SDKB, ser. LNCS, vol. 4925. Springer, 2008, pp. 143–159.
3-
Declarative debugging of SQL. http://www.fdi.ucm.es/profesor/fernan/FSP/CGS11b.pdf, R. Caballero, Y. García-Ruiz, and F. Sáenz-Pérez, ''Algorithmic Debugging of SQL Views,'' in Ershov Informatics Conference (PSI’11), ser. LNCS, vol. 7162. Springer, 2011, pp. 77–85.
4-
SQL semantic analysis. http://arxiv.org/abs/1907.10914, F. Sáenz-Pérez, ''Applying Constraint Logic Programming to SQL Semantic Analysis'', Theory and Practice of Logic Programming, 35th International Conference on Logic Programming (ICLP’2019), Special Issue, 19(5-6):808-825, September 2019.
5-
Relational calculi. https://www.sciencedirect.com/science/article/pii/S0957417417308229, F. Sáenz-Pérez, ''Relational calculi in a deductive system'', Expert Systems with Applications, Volume 97, 2018, Pages 106-116.
6-
Fuzzy Datalog. https://ieeexplore.ieee.org/document/8293855, P. Julián-Iranzo and F. Sáenz-Pérez, ''A Fuzzy Datalog Deductive Database System'', IEEE Transactions on Fuzzy Systems, Issue 99, 2018.
7.
Fuzzy Hypothetical Datalog. https://ieeexplore.ieee.org/document/9177715, P. Julián-Iranzo and F. Sáenz-Pérez, ''A System implementing Fuzzy Hypothetical Datalog'', IEEE International Conference on Fuzzy Systems (FUZZ-IEEE 2020), Glasgow, UK, 2020. More references can be found at: https://des.sourceforge.io/html/publications.html, .
year : 2003

year_deployed : 2003
range_deployed : 2003-2022
range_development : 2003-2022

use : Free, licensed under LGPL.





contact : Fernando Sáenz-Pérez
address : Universidad Complutense de Madrid

email : fernan@sip.ucm.es
prolog : SICStus Prolog, SWI-Prolog
platform : Multiplatform
other_languages : Java, JavaScript, HTML
lines (lines): 67K
predicates (QTY): 4.2K
development_effort (MY): 0.1
maintenance_effort (MY): 0.1

project : EMDS

Project Description References Dates People Resources
EMDS domain : GIS, environmental modelling
purpose : The Ecosystem Management Decision Support (EMDS) system is an application framework for designing and implementing spatially enabled knowledge-based decision support systems for environmental analysis and planning at any geographic scale(s).
description : EMDS integrates state-of-the-art geographic information system, as well as knowledge-based reasoning and decision modeling, technologies to provide decision support for the adaptive management process of ecosystem management. It integrates a logic engine to perform landscape evaluations, and a decision engine for developing management priorities. The decision engine employs VisiRule charts which generate Flex code/rules which at run-time are compiled into Prolog facts and rules for execution by the meta-interpreter (implmented in Prolog) with expression deferencing.

references : Design Features behind Success of the Ecosystem Management Decision Support System and Future Development https://www.mdpi.com/1999-4907/6/1/27/pdf?version=1419580945, A decision support framework to assess and prioritize recovery actions for salmon in the Puget Sound https://cedar.wwu.edu/cgi/viewcontent.cgi?article=2768&context=ssec, Ecosystem_Management_Decision_Support https://en.wikipedia.org/wiki/Ecosystem_Management_Decision_Support, year : 1995

year_deployed : 1995



use : Licensed/ Sold product ... and/or more information





contact : Clive Spenser
address : address
telephone : +xxxxxxxxxxx
email : clive@lpa.co.uk
prolog : prolog
platform : windows
other_languages : C
lines (lines): number
predicates (QTY): number
development_effort (MY): number
maintenance_effort (MY): number

project : Energy Analyzer

Project Description References Dates People Resources
Energy Analyzer domain : energy, programming, research, tools
purpose : Tool for verifying and visualizing the energy consumption of programs
description : Energy Analyzer is a tool that allows verifying and visualizing the energy consumption of programs, as well as finding energy consumption hotspots and bugs. To perform the analysis it uses models of HW components, instructions or blocks, and a combination of static and dynamic analyses, the latter performed by a number of cost analysis components from the CiaoPP tool. It has been applied to the energy consumption of Java, (X)C, and Prolog programs. The version for X(C) was developed in collaboration with XMOS (UK) and Bristol U. and has been incorporated in experimental compilers from XMOS. Other instantiations of the tool have been funded by other major companies.

references :
[1]
Pedro López-García, Luthfi Darmawan, Maximiliano Klemen, Umer Liqat, Francisco Bueno, Manuel V. Hermenegildo: Interval-based resource usage verification by translation into Horn clauses and an application to energy consumption. Theory Pract. Log. Program. 18(2): 167-223 (2018)
year : 2008

year_deployed : 2008

range_development : 2018-2020

use : Open source, LGPL, Internal, Industrial





contact : Pedro Lopez


email : pedro.lopez@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 2186 (front end in Python) + 144240 (energy analysis in Prolog)



project : ErgoAI

Project Description References Dates People Resources
ErgoAI domain : Higher-level logic programming system implemented on top of XSB Prolog used for commercial applications in: configuration management, legal reasoning, financial planning, reasoning in defense applications, medical diagnosis, etc.
purpose : ErgoAI is a higher-level logic programming system implemented on top of XSB Prolog developed by CoherentKnowledge Systems, Inc. It is the newest reincarnation of Flora-2 developed at Stony Brook University on top of XSB Prolog, including: object-oriented programming, defeasible reasoning, transaction logic, incremental updates, a natural language programming language, and many more higher-level logics. It has been used in many commercial and research applications for private companies, research labs, and governmental agencies, in applications, such as: configuration management, legal reasoning, financial planning, reasoning in defense applications, medical diagnosis, etc.
description : ErgoAI compiles a higher-level logic programming language into XSB Prolog.

references : 1. Benjamin N. Grosof, Michael Kifer, Paul Fodor: Rulelog: Highly Expressive Semantic Rules with Scalable Deep Reasoning. RuleML+RR (Supplement) 2017
2.
Benjamin N. Grosof, Janine Bloomfield, Paul Fodor, Michael Kifer, Isaac Grosof, Miguel Calejo, Terrance Swift: Automated Decision Support for Financial Regulatory/Policy Compliance, using Textual Rulelog. Challenge+DC@RuleML 2015
3.
Benjamin N. Grosof, Michael Kifer, Paul Fodor: The Power of Semantic Rules in Rulelog: Fundamentals and Recent Progress (Extended Abstract of Tutorial Presentation). Reasoning Web 2015: 189-192
4.
Carl Andersen, Brett Benyo, Miguel Calejo, Mike Dean, Paul Fodor, Benjamin N. Grosof, Michael Kifer, Senlin Liang, Terrance Swift: Advanced Knowledge Base Debugging for Rulelog. RuleML (2) 2013
5.
Carl Andersen, Brett Benyo, Miguel Calejo, Mike Dean, Paul Fodor, Benjamin N. Grosof, Michael Kifer, Senlin Liang, Terrance Swift: Understanding Rulelog Computations in Silk. CoRR abs/1308.4125 (2013)
6.
Hui Wan, Benjamin N. Grosof, Michael Kifer, Paul Fodor, Senlin Liang: Logic Programming with Defaults and Argumentation Theories. ICLP 2009: 432-448
7.
Guizhen Yang, Michael Kifer: FLORA: Implementing an Efficient DOOD System Using a Tabling Logic Engine. Computational Logic 2000: 1078-1093
8.
Guizhen Yang, Michael Kifer: Reasoning about Anonymous Resources and Meta Statements on the Semantic Web. J. Data Semant. 1: 69-97 (2003)
9.
Guizhen Yang, I. V. Ramakrishnan, Michael Kifer: On the complexity of schema inference from web pages in the presence of nullable data attributes. CIKM 2003: 224-231
10.
Guizhen Yang, Michael Kifer, Chang Zhao: Flora-2: A Rule-Based Knowledge Representation and Inference Infrastructure for the Semantic Web. OTM 2003: 671-688
11.
Guizhen Yang, Michael Kifer: Inheritance and Rules in Object-Oriented Semantic Web Languages. RuleML 2003: 95-110
12.
Guizhen Yang, Michael Kifer: Well-Founded Optimism: Inheritance in Frame-Based Knowledge Bases. OTM 2002: 1013-1032
13.
Guizhen Yang, Michael Kifer: On the Semantics of Anonymous Identity and Reification. OTM 2002: 1047-1066
year : 2000

year_deployed : 2000
range_deployed : 1995-2022
range_development : 1995-2022

use : Personal use/ in-House use / Free/public domain/ Licensed/ Sold product ... and/or more information





contact : Michael Kifer
address : CoherentKnowledge Systems
telephone : +16316329820
email : michael.kifer@coherentknowledge.com
prolog : XSB Prolog
platform : Linux
other_languages : C, Java, python
lines (lines): 10000
predicates (QTY): 1000
development_effort (MY): 20
maintenance_effort (MY): 20

project : ETALIS

Project Description References Dates People Resources
ETALIS domain : Complex Event Processing
purpose : Streams of events appear increasingly today in various Web applications such as news feeds, sensor data streams, geospatial information, on-line financial data, etc. Event Processing (EP) is concerned with timely detection of compound events within streams of simple events. We developed ETALIS and EP-SPARQL languages for specifying patterns for detecting composed events from simpler events by means of deductive rules.ETALIS is implemented in Prolog. The engine run on many Prolog systems: XSB, SWI, YAP, SICStus, tuProlog and LPA Prolog.
description : State-of-the-art EP provided on-the-fly analysis of event streams, but could not combine streams with background knowledge and could not perform reasoning tasks. On the other hand, deductive databases could effectively handle background knowledge and perform reasoning thereon, but cannot deal with rapidly changing data provided by event streams. To bridge the gap, we developed ETALIS Language for Events (ELE) and Event Processing SPARQL (EP-SPARQL) as new languages for complex events and Stream Reasoning. ETALIS has a syntax close to Prolog, while EP-SPARQL was SQL-like. The execution model was grounded on logic programming, and features effective event processing and inferencing capabilities over temporal and static knowledge.

references : 1. Paul Fodor, Dumitru Roman, Darko Anicic, Adam Z. Wyner, Monica Palmirani, Davide Sottara, François Lévy: Joint Proceedings of the 7th International Rule Challenge, the Special Track on Human Language Technology and the 3rd RuleML Doctoral Consortium, Seattle, USA, July 11 -13, 2013. CEUR Workshop Proceedings 1004, CEUR-WS.org 2013
2.
Darko Anicic, Sebastian Rudolph, Paul Fodor, Nenad Stojanovic: Real-Time Complex Event Recognition and Reasoning-a Logic Programming Approach. Appl. Artif. Intell. 26(1-2):
6-
57 (2012)
3.
Darko Anicic, Sebastian Rudolph, Paul Fodor, Nenad Stojanovic: Stream reasoning and complex event processing in ETALIS. Semantic Web 3(4): 397-407 (2012)
4.
Darko Anicic, Sebastian Rudolph, Paul Fodor, Nenad Stojanovic: Retractable Complex Event Processing and Stream Reasoning. RuleML Europe 2011: 122-137
5.
Darko Anicic, Sebastian Rudolph, Paul Fodor, Nenad Stojanovic: A Declarative Framework for Matching Iterative and Aggregative Patterns against Event Streams. RuleML Europe 2011: 138-153
6.
Darko Anicic, Paul Fodor, Sebastian Rudolph, Nenad Stojanovic: EP-SPARQL: a unified language for event processing and stream reasoning. WWW 2011: 635-644
7.
Darko Anicic, Paul Fodor, Sebastian Rudolph, Roland Stühmer, Nenad Stojanovic, Rudi Studer: A Rule-Based Language for Complex Event Processing and Reasoning. RR 2010: 42-57
8.
Darko Anicic, Paul Fodor, Roland Stühmer, Nenad Stojanovic: Event-Driven Approach for Logic-Based Complex Event Processing. CSE (1) 2009: 56-63
9.
Darko Anicic, Paul Fodor, Nenad Stojanovic, Roland Stühmer: An approach for data-driven and logic-based complex Event Processing. DEBS 2009
10.
Darko Anicic, Paul Fodor, Nenad Stojanovic, Roland Stühmer: Computing complex events in an event-driven and logic-based approach. DEBS 2009
year : 2007

year_deployed : 2007
range_deployed : 2007-2012
range_development : 2007-2012

use : Personal use/ in-House use / Free/public domain/ Licensed/ Sold product ... and/or more information





contact : Paul Fodor
address : Stony Brook University
telephone : +16316329820
email : pfodor@cs.stonybrook.edu
prolog : XSB prolog
platform : windows
other_languages : java
lines (lines): 5000
predicates (QTY): 200
development_effort (MY): 10
maintenance_effort (MY): 10

project : Ews

Project Description References Dates People Resources
Ews domain : Used in any domain where English language statements (stored from what a user knows) are used to describe that particular domain whereby those facts can be tested and acted on by reading statements in Excel spreadsheet cells.
purpose : Use of Natural language (NL) to perform human tasks in computing by reading English language text stored by users in text databases, SQL databases, and Excel spreadsheets databases. Spreadsheet cells can contain several English language statements (sentences) whereby those sentences are read by the computer which may direct any statement in the spreadsheet cell to start to read another cell which can then read text, SQL statements or text in spreadsheet cells that may be attached to files, exe(s), word documents, and other MS or non-MS files, and URLs. Software agent statements I.e.: “agentcar show me a picture or a red car with a 305-horsepower engine.” Read a statement in a cell and have it so the statement transfers data from a remote spreadsheet on the Internet via the software agent designated statement to the sending spreadsheet cell. Most importantly, consider any domain of knowledge, chemical, mechanical, electrical, computing etc. and translate those facts and statements stored in Excel spreadsheet so that logic testing of those statements can be made resulting in decisions from rows and columns wherein English language statements from the spreadsheet cells are sent (via software agent statements) to other cells or spreadsheets on the local computer or computer on their networks.
description : Stores user thoughts formed as English language sentences into various databases (text, SQL, and Spreadsheet cells) so those thoughts can be recalled by a single input letter, single words, or parts of the stored sentence whereby the read sentence executes the stored sentence attachments (1 of N). In the case where the attachment is a software agent sentence, that sentence will be sent to another Ews application on or off the network in the same or a remote computer. Use of a synonym dictionary allows users to store synonyms within stored sentence – Show a picture of a red car. Show me picture of a red automobile –shows the same picture. Synonyms are automatically stored in the SQL database or users can add synonyms as part of the stored sentence. Note, the Ews application can use any non Ews application to transport data to and from other applications i.e., Team Viewer.

references : Used at a large computer outsourcing firm to help manage a large computer infrastructure. Used at an on-line encyclopedia firm to manage text databases; Used to manage US Patent submissions – used to keep track of document due dates and the updating of US patent application documents; Used to manage software development of the (this) Ews application – used to show location of Ews software components, used as a help desk for the Ews application. In a sub application with input statements, the application sends English language sentences to other Ews applications to give status and asks for next steps. year : 1999

year_deployed : 1999
range_deployed : 2010-2022
range_development : 1998 -2022

use : Personal and Business use. US Patents: 10,698,978 B1 8510328 6269356 6101490 OR uses this URL: https://patents.justia.com/inventor/charles-malcolm-hatton OR Go to the USPTO web site





contact : Chuck H.
address : Not given
telephone : +xxxxxxxxxxx
email : wordcomputing@gmail.com
prolog : Win-prolog
platform : windows
other_languages : jSQL, C, OLE
lines (lines): 3500
predicates (QTY): 1500 2200
development_effort (MY): 4
maintenance_effort (MY): 1

project : EYE

Project Description References Dates People Resources
EYE domain : industry (healthcare, construction, ...)
purpose : EYE is a reasoning engine supporting the Semantic Web layers https://www.w3.org/DesignIssues/diagrams/sweb-stack/2006a,
description : EYE performs forward and backward chaining. Via N3 https://w3c.github.io/N3/spec/, it is interoperable with Cwm https://www.w3.org/2000/10/swap/doc/cwm, . Forward chaining is applied for rules using => in N3 and backward chaining is applied for rules using <= in N3 which one can imagine as built-ins.

references :
[1]
EYE homepage: Euler Yet another proof Engine - EYE https://josd.github.io/eye/,
[2]
EYE paper: Drawing Conclusions from Linked Data on the Web: The EYE Reasoner https://josd.github.io/Papers/EYE.pdf,
[3]
EYE tutorial: Semantic Web Reasoning With EYE https://n3.restdesc.org/,
[4]
EYE talk: EYE looking through N3 glasses http://josd.github.io/Talks/2012/04swig/index.html,
[5]
N3 talk: Notation3 Logic: A Practical Introduction https://josd.github.io/temp/Notation3_A_practical_introduction.pdf,
year : 2006

year_deployed : 2006
range_deployed : 2006-2022
range_development : 2006-2022

use : MIT Licence





contact : Jos De Roo


email : josderoo at gmail com
prolog : SWI-Prolog
platform : Linux, MacOS and Windows

lines (lines): 10000
predicates (QTY): 1000
development_effort (MY): 2
maintenance_effort (MY): 4

project : Flex Expert System toolkit

Project Description References Dates People Resources
Flex Expert System toolkit domain : Knowledge-based Expert Systems
purpose : Flex allows domain experts to build knowledge based expert systems
description : Flex supports both forward chaining production rules and backward chaining rule-based inferencing. Flex offers a frame-based hierarchy with multiple inheritance for data. Flex uses a dedicated English-like KSL (Knowledge Specification Language) for defining rules, frames, actions, groups, demons Flex is implemented in and allows access to the underlying Prolog. Flex was ported to Quintus, Sictus, ICL, Quintec, BIM and other Prologs in the 90s. Product Description on: https://www.lpa.co.uk/flx.htm, Flex was used as the basis for the Open Universities popular T396 course which ran for nearly 20 years and taught KE to over 15K engineers using Flex. https://www.open.ac.uk/library/digital-archive/module/xcri:T396/study, https://www.researchgate.net/publication/3051125_Keeping_a_Distance-Education_Course_Current_Through_eLearning_and_Contextual_Assessment, Flex KSL is used as the rules-language by VisiRule

references :
[1]
SewEx – A flex Based Expert System for Sewage Treatment Works Support https://www.academia.edu/33587448/SewEx_A_flex_Based_Expert_System_for_Sewage_Treatment_Works_Support,
[2]
ESSE: an expert system for software evaluation https://www.sciencedirect.com/science/article/abs/pii/S0950705199000313,
[3]
PREDICTION OF THE SUITABILITY OF LOCATIONS FOR WIND FARMS USING FLEX EXPERT SYSTEM http://www.savap.org.pk/journals/ARInt./Vol.1, (1)/2011(1.1-23).pdf
[4]
Allergenius, an expert system for the interpretation of allergen microarray results https://www.sciencedirect.com/science/article/pii/S1939455119302467,
[5]
An expert system for the conceptual design of bridges https://www.sciencedirect.com/science/article/abs/pii/004579499190462U,
[6]
WebCADET: facilitating distributed design support https://digital-library.theiet.org/content/conferences/10.1049/ic_19980537,
[7]
Reengineering the Knowledge Component of a Data Warehouse-Based Expert Diagnosis System https://link.springer.com/chapter/10.1007/11546924_89,
[8]
Integrating knowledge-based systems with mainframe data processing via terminal operator emulation https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1468-0394.1991.tb00374.x,
[9]
Comparative study of two knowledge-based development systems: flex/Prolog and ATOME/LISP https://ieeexplore.ieee.org/abstract/document/526411,
[10]
A Knowledge-Based System for Spinning Management https://journals.sagepub.com/doi/abs/10.1177/004051759606600413,
[11]
Diet Planning Expert System https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=109920&item_no=1&attribute_id=1&file_no=1,
[12]
Building a Semantic-Web Portal Using Frame-based System https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.121.7866&rep=rep1&type=pdf,
[13]
AI Toolkit by Prof Hopgood https://www.adrianhopgood.com/aitoolkit/?i=1,
year : 1989

year_deployed : 1989
range_deployed : 1990-2022
range_development : 1990-2022

use : Licensed/ Sold product





contact : clive spenser
address : LPA
telephone : +xxxxxxxxxxx
email : clive@lpa.co.uk
prolog : prolog
platform : windows
other_languages : java
lines (lines): 5000
predicates (QTY): 150
development_effort (MY): 20
maintenance_effort (MY): 1

project : FSA Utilities

Project Description References Dates People Resources
FSA Utilities
purpose : FSA Utilities is a collection of utilities to manipulate regular expressions, finite-state automata and finite-state transducers. Manipulations include automata construction from regular expresssions, determinization (both for finite-state acceptors and finite-state transducers), minimization, composition, complementation, intersection, Kleene closure, etc. Various visualization tools are available to browse finite-state automata. Interpreters are provided to apply finite automata. Finite automata can also be compiled into stand-alone C programs. FSA6 extends FSA5 by allowing predicates on arcs instead of atomic symbols
description : Toolbox for manipulating finite state automata and regular expressions

references : Gertjan van Noord. FSA Utilities: A Toolbox to Manipulate Finite-state Automata. In: Darrell Raymond, Derick Wood and Sheng Yu (eds), Automata Implementation. Lecture Notes in Computer Science 1260, Springer Verlag.
Gertjan van Noord and Dale Gerdemann. Finite State Transducers with Predicates and Identity. Grammars 4 (3).
Gertjan van Noord, Dale Gerdemann, An Extendible Regular Expression Compiler for Finite-state Approaches in Natural Language Processing.
In: O.Boldt, H.Juergensen (eds), Automata Implementation. 4th International Workshop on Implementing Automata, WIA '99, Potsdam Germany, July 1999, Revised Papers. Springer Lecture Notes in Computer Science 2214, 2000.
Dale Gerdemann, Gertjan van Noord. Approximation and Exactness in Finite State Optimality Theory. In: Jason Eisner, Lauri Karttunen, Alain Thériault (editors), SIGPHON 2000, Finite State Phonology. Proceedings of the Fifth Workshop of the ACL Special Interest Group in Computational Phonology. August 2000, Luxembourg. Dale Gerdemann, Gertjan van Noord, Transducers from Rewrite Rules with Backreferences. EACL 99, Bergen Norway. 1999.
year : 1996-2002

year_deployed : 1996



use : free





contact : Gertjan van Noord
address : University of Groningen, PO BOX 716, 9700 AS Groningen, Netherlands
telephone : +315032637811
email : g.j.m.van.noord@rug.nl
prolog : SICStus 3, SWI-Prolog 6, YAP
platform : Windows, Linux, macOS
other_languages : NA
lines (lines): 23000 without the examples
predicates (QTY): 2099
development_effort (MY): NA
maintenance_effort (MY): NA

project : FTCLP

Project Description References Dates People Resources
FTCLP domain : programming research tools
purpose : FTCLP: A Failure-based Tabling Interpreter for Constraint Logic Programs based on Interpolation
description : FTCLP (Failure-based Tabled Constraint Logic Programs) is an interpreter for Constraint Logic Programming that improves the standard CLP evaluation mechanism by reducing infinite loops and redundant sub-computations. It is implemented using the Ciao Prolog system and the SMT solver MathSAT 5 for checking satisfiability and for generating interpolants. FTCLP records certain derivations in order to prune further derivations. However, FTCLP only learns from failed derivations. This allows it to compute Craig interpolants rather than constraint projection for generation of reusing conditions. As a result, the technique can be used where projection is too expensive or does not exist. Moreover, it can get termination in cases where the use of projection cannot. Authors: Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, and Peter J. Stuckey (U. of Melbourne, Australia)

references :
[1]
Gange, G., Navas, J., Schachte, P., Sondergaard, H., and Suckey, P. Failure tabled constraint logic programming by interpolation. Theory and Practice of Logic Programming, 13(4-5), 593-607, 2013.
[2]
https://github.com/caballa/ftclp,
year : 2013

year_deployed : 2013

range_development : 2013-2017

use : Open source, LGPL





contact : Jorge Navas
address : Certora

email : navasjorgea@gmail.com
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 27275



project : gamemaster

Project Description References Dates People Resources
gamemaster domain : General Game Playing
purpose : Comprehensive website with educational resources, game description language, game analysis and optimization tools, game playing software, and infrastructure for administering general game playing competitions.
description : Game Description Language (GDL) is a variant of Prolog / Epilog used to encode the rules of strategy games (such as chess, checkers, and so forth). There is a large library of game descriptions encoded in GDL along with ''stylesheets'' to provide Gamemaster has a variety of components. There are tools for analyzing and optimizing games encoded in GDL. There are implementations of standard game playing programs (e.g. minimax, iterative deepening minimax, Monte Carlo search, Monte Carlo tree search, game factoring, game optimization, and so forth). There are game management programs for running games between humans, automated players, and combinations of humans an automated players.Gamemaster was used in administering the International Game Playing Competition at conferences (AAAI and IJCAI 2005 - 2016) and will serve as the infrastructure for the upcoming online revival.

references :
[1]
Genesereth, M. R., Bjornsson, Y.: General Game Playing: Overview of the AAAI Competition, AAAI Magazine, http://logic.stanford.edu/publications/genesereth/aaai.pdf, .
[2]
Genesereth, M. R., Bjornsson, Y.: The International General Game Playing Competition, AAAI Magazine, http://logic.stanford.edu/publications/genesereth/aaai2.pdf, .
[3]
Genesereth, M. R., Thielscher, M.: General Game Playing: https://link.springer.com/book/10.1007/978-3-031-01569-4, (print) and http://ggp.stanford.edu, (online course)
[4]
General Game Playing website, http://gamemaster.stanford.edu, .
year : 2005

year_deployed : 2005
range_deployed : 2005-2022
range_development : 2005-2022

use : Game descriptions, tools, and software are openly available (for free); the online competition environment requires account (also free).





contact : Michael Genesereth


email : genesereth@stanford.edu
prolog : Epilog
platform : any
other_languages : javascript, java
lines (lines): 1000s
predicates (QTY): 1000s
development_effort (MY): 10s

project : GTO

Project Description References Dates People Resources
GTO
purpose : GTO is a formal methods tool. It can analyse specifications and system models written in linear time predicate logic with finite quantification domains. It offers animation/simulation of models, proofs using external SAT solvers and exploration of (counter)models. It can also export models to Isabelle for interactive proof. It has been used industrially in a number of projects. Today it is a research tool.
description : Formal specification and verification tool

references : Eriksson, Lars-Henrik: The GTO Toolset and Method, Electronical Notes in Theoretical Computer Science, 185:77-91 (2007). year : 1997-2022

year_deployed : 1997



use : in-house





contact : Lars-Henrik Eriksson
address : Uppsala university, Dept. of Information Technology, Box 337, 751 05 UPPSALA, Sweden
telephone : +46184711057
email : lhe@it.uu.se
prolog : SICStus
platform : all
other_languages : C, Tcl/Tk
lines (lines): 7000
predicates (QTY): 400


project : IBM Watson

Project Description References Dates People Resources
IBM Watson domain : question answering
purpose : On February
14-
16, 2011, the IBM Watson question answering system won the Jeopardy! Man vs. Machine Challenge by defeating two former grand champions, Ken Jennings and Brad Rutter. Prolog was the ideal choice for conveniently express pattern matching rules over the parse trees and other annotations (such as named entity recognition results) due to its simplicity, expressiveness, and the capacity to query these rules efficiently.
description : IBM Watson was parsing the Jeopardy! clues into Prolog facts, which were consulted into the Prolog system and several rule sets were executed to detect the focus of the question, the lexical answer type and several relations between the elements of the parse. In practice, natural language is complex and ambiguous, and the pattern matching rules that we required were sorted by specificity, therefore the problem was very well suited for solving with backtracking over pattern matching because we checked for lots of conditions over the parse and we wanted a query language where we can include/exclude these conditions depending on some context. The Prolog language was recognized to be an excellent solution for the problem of pattern matching and all problems that involve a depth-first search and backtracking. Although simple, the Prolog language is very expressive allowing recursive rules to represent reachability in parse trees and the operation of negation-as-failure to check the absence of conditions. Prior to our decision to use Prolog for this task, we had implemented custom pattern matching frameworks over parses. These frameworks lacked the full feature set of Prolog or the efficiency of a good Prolog implementation. Using Prolog for this task has significantly improved our productivity in developing new pattern matching rules and has delivered the execution efficiency necessary in order to be competitive in a Jeopardy! game.

references : 1. Adam Lally, John M. Prager, Michael C. McCord, Branimir Boguraev, Siddharth Patwardhan, James Fan, Paul Fodor, Jennifer Chu-Carroll: Question analysis: How Watson reads a clue. IBM Journal of Research and Development, 56(3): 2 (2012).
2.
Michael McCord, Branimir Boguraev, John Prager, , and J. William Murdock. Parsing and Semantic Analysis in DeepQA. IBM Journal of Research and Development, 56(4): 2 (2012).
3.
Paul Fodor, Adam Lally, David A. Ferrucci: The Prolog Interface to the Unstructured Information Management Architecture. Report 2008.
year : 2007

year_deployed : 2007
range_deployed : 2007-2014
range_development : 2007-2011

use : Won game, Sold product for medical diagnosys.





contact : Paul Fodor
address : Stony Brook University
telephone : +16316329820
email : pfodor@cs.stonybrok.edu
prolog : Sicstus Prolog, XSB, SWI
platform : windows
other_languages : java
lines (lines): 5000
predicates (QTY): 400
development_effort (MY): 10
maintenance_effort (MY): 10

project : KALM

Project Description References Dates People Resources
KALM domain : Natural Language Processing
purpose : Knowledge Authoring for Logic Machines (KALM) system allows knowledge authoring with the aim of endowing domain experts with tools that would allow them to translate their knowledge into logic.
description : The first version of KALM used the Attempto Controlled Natural Language (CNL), while the second version allowed unrestricted full natural language using a neural-networks state of the art parser. KALM allows the users to incrementally teach the parsed to disambiguate sentences by mapping semantically equivalent sentences into the same frames and assigns them unique logical representation.

references : 1. Knowledge Authoring for Rule-Based Reasoning. Tiantian Gao, Paul Fodor, Michael Kifer. ODBASE, OTM Conferences 2018: 461-480.
2.
High Accuracy Question Answering via Hybrid Controlled Natural Language. Tiantian Gao, Paul Fodor, Michael Kifer. Web Intelligence (WI), 2018.
3.
Querying Knowledge via Multi-Hop English Questions. Tiantian Gao, Paul Fodor, Michael Kifer. Proceedings of the 35th International Conference on Logic Programming (ICLP) 2019, Las Cruces, New Mexico, USA. Published in Theory and Practice of Logic Programming, Cambridge University Press.
4.
Knowledge Authoring with Factual English. Yuheng Wang, Giorgian Borca-Tasciuc, Nikhil Goel, Paul Fodor and Michael Kifer. International Conference on Logic Programming (ICLP) 2022.
https://github.com/tiantiangao7/kalm,
year : 2018

year_deployed : 2018
range_deployed : 2018-2022
range_development : 2018-2022

use : Free





contact : Paul Fodor
address : Stony Brook University
telephone : +16316329820
email : pfodor@cs.stonybrook.edu
prolog : XSB Prolog
platform : windows
other_languages : java, python
lines (lines): 5000
predicates (QTY): 1000
development_effort (MY): 5
maintenance_effort (MY): 5

project : LHornSolver

Project Description References Dates People Resources
LHornSolver domain : programming research tools
purpose : An abstraction-refinement algorithm for solving non-linear Horn clauses using only a linear Horn clause solver
description : LHornSolver uses an abstraction-refinement algorithm for solving non-linear Horn clauses using only a linear Horn clause solver. LHornSolver uses several reusable components such as a linear Horn clause solver, a dimension bounded program generator, Horn clause linearisers etc. LHornSolver is written in (Ciao)Prolog and is interfaced with the Yices SMT solver and the Parma polyhedra library for handling constraints. Developers; Bishoksan Kafle (Roskilde University, Denmark), John P. Gallagher (Roskilde University, Denmark), Pierre Ganty (IMDEA Software Institute, Spain).

references :
[1]
https://github.com/bishoksan/LHornSolver,
[2]
Bishoksan Kafle, John P. Gallagher, Pierre Ganty: Solving non-linear Horn clauses using a linear Horn clause solver. HCVS@ETAPS 2016: 33-48
year : 2016

year_deployed : 2016

range_development : 2016-present

use : Open source, Apache-2.0 license





contact : Jose F. Morales


email : josef.morales@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 4533



project : LPdoc

Project Description References Dates People Resources
LPdoc domain : teaching generation of documents and programs programming tools
purpose : Automatic program documentation and web site generator for (C)LP systems
description : LPdoc is an automatic documentation generator for (C)LP systems. It is used for tasks like documenting libraries and applications, creating material for courses and tutorials, generating web sites, etc. LPdoc allows embedding in the resulting documents executable examples, exercises, etc. that for html output run locally in the browser, or, for other types of output, are rendered as pointers that load the corresponding code on an on-line Prolog playground.
Documents are generated from one or more source files, which can be (C)LP modules or text (e.g., markdown) files. When documenting code, LPdoc automatically generates a description of the module interface. In these cases, the quality of the documentation generated can be greatly enhanced by including within the program text assertions (types, modes, etc. ...) for predicates, and machine-readable comments (in the “literate programming” style). LPdoc can output multiple formats, such as HTML, pdf, GNU info, ascii, etc.

references :
[1]
https://github.com/ciao-lang/lpdoc,
[2]
Manuel V. Hermenegildo. A Documentation Generator for (C)LP Systems. Computational Logic 2000: 1345-1361
[3]
M. Hermenegildo and J. F. Morales. The LPdoc Documentation Generator. Ref. Manual. http://ciao-lang.org/ciao/build/doc/lpdoc.html,
[4]
Playground http://ciao-lang.org/playground/,
year : 1996

year_deployed : 1996

range_development : 1996-present

use : Open source, LGPL





contact : Manuel Hermenegildo


email : manuel.hermenegildo@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, browser, ...

lines (lines): 25781 (+ libraries)



project : MetaMap

Project Description References Dates People Resources
MetaMap
purpose : Identify concepts in UMLS Metathesaurus encountered in free text, especially PubMed citations and clinical notes
description : Biomedical named-entity recognition

references : https://lhncbc.nlm.nih.gov/ii/information/Papers/JAMIA.2010.17.Aronson.pdf, and references therein year : 1992-2020

year_deployed : 1992



use : free but requires UMLS license (https://www.nlm.nih.gov/databases/umls.html)





contact : Francois Lang
address : National Library of Medicine; 8600 Rockville Pike, Building #38A, Room 9N-904; Bethesda, MD 20894; Room 7S-717
telephone : 301.827.4995
email : flang@mail.nih.gov
prolog : SICStus
platform : Windows (via Docker), Linux, macOS
other_languages : C, C++, Java
lines (lines): 166,465
predicates (QTY): 2,829
development_effort (MY): 25 years
maintenance_effort (MY): 200 hours/year

project : Michelson Cost Analyzer

Project Description References Dates People Resources
Michelson Cost Analyzer domain : blockchain programming research tools
purpose : Analyzer and verifier for gas and storage consumption in smart contracts written in the Michelson language
description : The Michelson Cost Analyzer is a tool that analyzes and verifies gas and storage consumption in smart contracts. It has been developed for the Tezos foundation blockchain, for the analysis of contracts written in its Michelson language. The operation of the tool is based on a transformation from the bytecode-level Michelson language to Horn clauses, via partial evaluation, and an adaptation of the cost analyzers provided by the CiaoPP tool.

references :
[1]
V. Perez-Carrasco, M. Klemen, P. Lopez-Garcia, J.F. Morales, M. V. Hermenegildo. Cost Analysis of Smart Contracts via Parametric Resource Analysis. Proceedings of the 27th Static Analysis Symposium (SAS 2020), LNCS, Vol. 12389, pages
7-
31, Springer, November 2020.
year : 2020

year_deployed : 2020

range_development : 2020-present

use : Open source, LGPL, Internal, Industrial





contact : Manuel Hermenegildo


email : manuel.hermenegildo@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 37867



project : MOVIS

Project Description References Dates People Resources
MOVIS
purpose : Describe and define logic rules in a high-level format accessible by non-programmers, while providing full computational power. Execute rule models to provide answers and solution to calls (questions) from credit origination systems, or whatever system that needs to execute logic rules
description : Graphic representation of logic rules, Automatic generation of Prolog programs, Execution by Rule engine

references : Tietoevry Banking year : 2000-2022

year_deployed : 2000



use : licensed





contact : Torkel Hjerpe
address : contact address
telephone : contact telephone
email : torkel.hjerpe@tietoevry.com
prolog : SICStus
platform : Windows
other_languages : C#, Java
lines (lines): number of lines of code
predicates (QTY): Basic libraries provided, the rest is generated from diagrams
development_effort (MY): 3000
maintenance_effort (MY): Hard to define, we constantly improve the products (Designer for code generation, Xplorer for testing rule models, Service for executing models in production,

project : Muasm

Project Description References Dates People Resources
Muasm domain : programming research tools
purpose : Translator of x64 into muASM programs for static analysis
description : Muasm is a translator of x64 assembly programs (written in the Intel or AT&T syntax) into muASM programs. It is used as a front-end tool for static analysis, as performed by tools like Spectector.

references :
[1]
https://github.com/spectector/muasm_translator,
[2]
Marco Guarnieri, Boris Köpf, José F. Morales, Jan Reineke, Andrés Sánchez: Spectector: Principled Detection of Speculative Information Flows. IEEE Symposium on Security and Privacy 2020:
1-
19
year : 2018

year_deployed : 2018

range_development : 2018-2020

use : Open source, Apache-2.0 license.





contact : Jose F. Morales


email : josef.morales@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 1816



project : NeuralTax

Project Description References Dates People Resources
NeuralTax domain : accounting, legal
purpose : Answer to tax and accounting questions under U.S. tax law and Generally Accepted Accounting Principles (GAAP)
description : ErgoAI (a higher-level logic programming system implemented on top of XSB Prolog) is being used by Neural Tax Networks Inc. to determine the most accurate answers to tax and accounting questions under U.S. tax law and Generally Accepted Accounting Principles (GAAP). The initial application uses ErgoAI to determine which expenditures are tax deductible as “trade or business expenses” according to US Code Section 162. Neural Tax’s initial application uses defeasible logic to specify deduction exceptions and produces natural language justifications for its results that linked to the language of portions of Internal Revenue Code section 162.

references : https://neuraltaxnetworks.com, year : 2019

year_deployed : 2019
range_deployed : 2019-2022
range_development : 2019-2022

use : Licensed/Sold product





contact : Henry Orphys


email : Henry.Orphys@neuraltax.com
prolog : ErgoAI, XSB prolog
platform : windows
other_languages : java
lines (lines): 5000
predicates (QTY): 100
development_effort (MY): 3
maintenance_effort (MY): 3

project : NtHorn

Project Description References Dates People Resources
NtHorn domain : programming research tools
purpose : Preconditions Generator for Non-termination
description : NtHorn is a transformation-guided tool for inferring sufficient preconditions for non-termination of a program based on (Constrained) Horn clauses. It uses techniques such as abstract interpretation, partial evaluation, constraint specialisation and counterexample-guided program transformation and decomposition. NtHorn is written in Ciao Prolog and is interfaced with Parma polyhedra library and Yices2 SMT solver for manipulating constraints. It uses several reusable components such as a Convex polyhedra analyser, Query-answer tranformer, etc. It also makes use of a Java library for manipulating finite tree automata. Developer: Bishoksan Kafle.

references :
[1]
https://github.com/bishoksan/NtHorn,
year : 2021

year_deployed : 2021

range_development : 2021-present

use : Open source, Apache-2.0 license





contact : Jose F. Morales


email : josef.morales@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 19500



project : ODE Classifier

Project Description References Dates People Resources
ODE Classifier domain : Parts Management
purpose : This is a Bayesian-like classifier of short textual part descriptions that maps a text description to nodes in a taxonomy of parts containing c. 60,000 nodes. It includes a GUI to edit the ontology that drives the classifier.
description : It is driven by an ontology that includes training strings. The classifier can be run in batch mode on millions of text strings, or can be tuned and run interactively within the GUI. The interface provides many ways to process, view, compare and tune classifications. It is designed to work with minimal (mostly) hand-tuned training items.

references : See xsb.com website. year : 2001

year_deployed : 2001
range_deployed : 2001-pres
range_development : 2001-2003

use : It is used by knowledge engineers within XSB, Inc. to classify millions of part descriptions and to tune the classifier to improve the classifications as necessary.





contact : David S. Warren


email : warren@xsb.com
prolog : XSB Prolog
platform : windows,linux
other_languages : Java
lines (lines): c. 13,000+libraries
predicates (QTY): ?
development_effort (MY): 0.5
maintenance_effort (MY): 0.5

project : ODE Constructor

Project Description References Dates People Resources
ODE Constructor domain : Domain Specific Ontology Constructor/Editor
purpose : This interactive application allows a user to create/edit an ontology that drives the XSB extractor to extract and standardize part properties from text.
description : It provides a GUI interface for a user to construct/edit/test an ontology (in XSB CDF format) that drives the XSB Property Extractor to extract part properties from text. The ontology is processed to generate rules that the Property Extractor uses to process text. Many rules are automatically generated from the ontology structure. More complex rules can be added through convenient, interactive forms. The GUI enforces constraints that the rules must satisfy. The system allows rules to be tested against text interactively, modified, and retested.

references : See XSB, Inc. website: https://www.xsb.com, for end-user applications it is used to support. year : c. 2003

year_deployed : 2003
range_deployed : 2003-present
range_development : 2003-c.2008

use : It is used with the XSB company by knowledge engineers to update and improve a variety of extractors used to support supply chain applications.





contact : David S. Warren


email : warren@xsb.com
prolog : XSB Prolog
platform : windows+linux
other_languages : interfaces to Java, XJ
lines (lines): 10,000 + libraries
predicates (QTY): ?
development_effort (MY): c. 1.0
maintenance_effort (MY): c. 0.5

project : Pacioli

Project Description References Dates People Resources
Pacioli domain : accounting,auditing,XBRL,blockchain,NFT,fintech
purpose : validate standard financial reports with extensible ruleset, operating in a blockchain-coordinated network of engines
description : XBRL documents (financial reports, data schemas, rule linkbases) are internalised into a PROLOG representation. XBRL formula processing maps into dynamic Prolog goal generation and evaluation. The validation results are delivered in human-readable HTML (for example https://ipfs.infura.io/ipfs/QmNRATHA3y1rkgCduDBpSyk33EqNcMw1xV1CozEptsrBxV, ) as well as JSON, to feed a Web3 app UI ( https://appalpha.auditchain.finance, ) and to support other services, namely a report editor.Rulesets that are registered as NFTs ''bill'' their part in the validations, e.g. they receive royalties. Pacioli is integrated with smartcontracts on the Polygon blockchain, via another (NodeJS) application, pacioliAgent, using the AUDT token.

references : https://docs.auditchain.finance/auditchain-protocol/pacioli-logic-and-rules-enginehttp://logicalcontracts.com/xbrl-and-sbrm-reporting/, year : 2021

year_deployed : 2021
range_deployed : 2021-2022
range_development : 2020-2022

use : The proprietary validation engine of auditchain.finance





contact : Miguel Calejo
address : Lisboa, Portugal
telephone : +351939849600
email : mc@logicalcontracts.com
prolog : SWI-Prolog
platform : web
other_languages : Javascript
lines (lines): 12000
predicates (QTY): 1900
development_effort (MY): 2
maintenance_effort (MY): 1

project : PECOS

Project Description References Dates People Resources
PECOS domain : Programming Research Tools
purpose : CHC solver
description : PECOS is a solver for Constraint Horn Clauses based on partial evaluation and constraint specialisation. In addition to Prolog, it uses also Java, Python, shell, and SMT. Developer: John Gallagher (Roskilde University)

references :
[1]
https://github.com/jpgallagher/pecos,
year : 2018

year_deployed : 2018

range_development : 2018-2019

use : Open source, Apache-2.0 license





contact : Jose F. Morales


email : josef.morales@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 5704



project : Pi

Project Description References Dates People Resources
Pi
purpose : Pi is an interactive proof editor using partial inductive definitions with typed higher-order terms as its meta logic. It can accept semantic and syntactic definitions for object logics and allows a user to interactively develop and edit proofs. Proofs are displayed on the screen as proof trees. Note: Pi is interesting in that it is a completely pure logic program also for input/output which is done using streams implemented as lazy lists
description : Interactive proof editor.

references : Eriksson, Lars-Henrik: Pi: An interactive derivation editor for the calculus of partial inductive definitions. In: CADE-12 - 12th International Conference on Automated Deduction, Proceedings. Bundy, Alan (ed.), Springer Lecture Notes in Artificial Intelligence 814, pp. 821-825 (1994) year : 1991-1994

year_deployed : 1991



use : free for non-commercial use





contact : Lars-Henrik Eriksson
address : Uppsala university, Dept. of Information Technology, Box 337, 751 05 UPPSALA, Sweden
telephone : +46184711057
email : lhe@it.uu.se
prolog : SICStus
platform : Unix/Linux
other_languages : None
lines (lines): 5500
predicates (QTY): 480


project : PI-Horn

Project Description References Dates People Resources
PI-Horn domain : programming research tools
purpose : Preconditions inferrer for Horn clauses (PI-Horn)
description : PI-Horn is a transformation-guided tool for inferring sufficient preconditions for safety or unsafety of a program based on (Constrained) Horn clauses. It uses techniques such as abstract interpretation, partial evaluation, constraint specialisation and counterexample-guided program transformation and decomposition. PI-Horn is an iterative method which maintains over-approximations of the sets of safe and unsafe states which are successively refined using abstract interpretation and program transformations. Furthermore, in each iteration of the method, only the set of states in the intersection of these approximations are considered, which are initialised to a universal set at the beginning. The method terminates when the intersection of safe and unsafe states is empty or the intersection does not reduce in the successive iteration. Then the sufficient conditions are derived from the sequences of safe and unsafe over-approximations. Developers: John Gallagher (Roskidle University), Bishoksan Kafle (Roskidle University), José Francisco Morales (UPM and IMDEA Software).

references :
[1]
https://github.com/bishoksan/PI-Horn,
year : 2018

year_deployed : 2018

range_development : 2018-2021

use : Open source, Apache-2.0 license





contact : Jose F. Morales


email : josef.morales@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 63454



project : Price Grouper

Project Description References Dates People Resources
Price Grouper domain : Parts Management
purpose : It takes a number of records for a single part that include its price as sold by some supplier. The quantity that the price varies, often for 1, but sometimes for packages containing 10 or 12 or 144 or 2000. The grouper uses heuristics to attempt to group the records into groups of the same quantity.
description : It uses heuristics to estimate breakpoints in the price distribution that seem to correspond to different quantities. A price record may also contain (poor quality) information on quantity and unit of issue, as ''2 boxes''. This information is also used (carefully) to try to determine price breaks. We compared the output of our Grouper with that produced by using a probabilistic mixture model and the heuristic algorithm generally produced significantly better groupings.

references : See Pricing Tools at www.xsb.com. year : 2004

year_deployed : 2004
range_deployed : 2004-present
range_development : 2004

use : Personal use/ in-House use / Free/public domain/ Licensed/ Sold product ... and/or more information





contact : David S. Warren


email : warren@xsb.com
prolog : XSB Prolog
platform : windows,linux

lines (lines): ~2400
predicates (QTY): ~65
development_effort (MY): 0.4
maintenance_effort (MY): 0.2

project : ProB

Project Description References Dates People Resources
ProB
purpose : ProB is a validation tool for the B-Method and various other related formal methods.
description : ProB provides a constraint solver, animator and model checker for the B-method and various other state-based formal methods such as Event-B and Z. The constraint solver supports full predicate logic, set theory, relations, functions, sequences, records and arithmetic. The model checker supports safety checking as well as LTL and CTL temporal logic formulas. Many interactive animation and visualisation features are also provided. % development started in 2001, first release in 2003, FM conference article 2003

references : LeuschelButler:FME03, DBLP:journals/sttt/LeuschelB08, Michael Leuschel & Michael Butler (2003): ProB: A Model Checker for B. In Keijiro Araki, Stefania Gnesi & Dino Mandrioli, editors: FME 2003: Formal Methods, LNCS 2805, Springer-Verlag, pp. 855–874, doi:10.1007/978-3-540-45236-2 46. @inproceedings{LeuschelButler:FME03, author = {Michael Leuschel and Michael Butler}, title = {Pro{B}: A Model Checker for {B}}, booktitle = {FME 2003: Formal Methods}, editor = {Araki, Keijiro and Gnesi, Stefania and Mandrioli, Dino}, publisher = {Springer-Verlag}, series = {LNCS 2805}, year = 2003, pages = {855--874}, isbn = {3-540-40828-2}, doi = {10.1007/978-3-540-45236-2_46}, }, Michael Leuschel & Michael J. Butler (2008): ProB: an automated analysis toolset for the B method. STTT 10(2), pp. 185–203. Available at http://dx.doi.org/10.1007/s10009-007-0063-9, . @article{DBLP:journals/sttt/LeuschelB08, Author = {Michael Leuschel and Michael J. Butler}, title = {{ProB}: an automated analysis toolset for the {B} method}, journal = {STTT}, volume = {10}, number = {2}, year = {2008}, pages = {185--203}, ee = { http://dx.doi.org/10.1007/s10009-007-0063-9, }, bibsource = {DBLP, http://dblp.uni-trier.de, } year : 2003

year_deployed : 2003



use : open-source (Eclipse Public License)





contact : Michael Leuschel
address : Institut für Informatik, Heinrich-Heine-Universität Düsseldorf, Universitätsstr. 1, D-40225 Düsseldorf
telephone : +49 211 81 10710
email : leuschel@uni-duesseldorf.de
prolog : SICStus
platform : Windows, Linux, macOS
other_languages : C, C++, Tcl/Tk, Java
lines (lines): 145038l lines, % only Prolog code excluding comment lines, measured using cloc for ProB 1.11.1; in addition 78,784 lines of C,C++ and 32803 lines of Tcl/Tk
predicates (QTY): 18588
development_effort (MY): 50 person-years(!)
maintenance_effort (MY): N/A

project : Prolog Playground

Project Description References Dates People Resources
Prolog Playground domain : teaching programming tools
purpose : An in-browser environment for editing and running Prolog programs
description : The Prolog Playground provides three main functionalities:
A) A very easy way to edit, run, and share Prolog code, directly from any modern browser. The main advantage is that the playground does not require any installation or interaction with a server since everything runs within the browser. It is thus very well suited for teaching, experimenting, testing the language, etc.
B) An easy way to embed runnable code examples in tutorials, manuals, slides, exercises, etc., and in general any kind of document. These documents can be developed with many tools, such as Google Docs, Jupyter notebooks, Word, Powerpoint, LaTeX, Pages, Keynote, web site generators, etc., etc. The examples are stored in the documents themselves and do not need to be uploaded to (or edited in) any server. This functionality can be exploited at the fullest using the LPdoc tool.
C) An easy way to create and distribute applications. The Playground can be specialized to create standalone web-based applications, with editor and top level, which also do not need installation, running fully within the user's browser. An example is the s(CASP) playground.

references :
[1]
http://ciao-lang.org/playground/,
[2]
http://cliplab.org/papers/scasp-web-gde.pdf,
year : 2022

year_deployed : 2022

range_development : 2022-present

use : Open source, LGPL





contact : Jose F. Morales


email : josef.morales@imdea.org
prolog : Ciao
platform : Any browser (mac, linux, windows, IOS, android, ...)

lines (lines): 10453



project : Property Extractor

Project Description References Dates People Resources
Property Extractor domain : Semantic Knowledge Processing
purpose : This application extracts from free text references to Specifications and Standards, materials, and processes.
description : It is a bottom-up parser/recognizer, driven by an ontology which is used to generate more than 70,000 grammar rules. It depends crucially on tabling of the Prolog engine. It is nondeterministic, with longer recognized strings being preferred to shorter strings.

references : See XSB, Inc. website: https://www.xsb.com, for end-user applications it is used to support. year : c. 2003

year_deployed : 2003
range_deployed : 2003-present
range_development : 2003-present

use : It is used to process tens of millions of records containing textual part information to extract standardized information to supply commercial chain applications.





contact : David S. Warren


email : warren@xsb.com
prolog : XSB Prolog
platform : windows+linux
other_languages : interfaces to Java
lines (lines): 1500 + libraries
predicates (QTY): ?
development_effort (MY): c. 0.5
maintenance_effort (MY): c. 0.2

project : PROSYN

Project Description References Dates People Resources
PROSYN domain : Process Engineering, Chemical Industry
purpose : Knowledge-based artificial intelligence (AI) system for process design
description : Utilizes AI in conceptual process design and process engineering based on heuristic rules and numerical methods. Starting from physical properties and chemistry, the expert system initiates the design process and determines and designs suitable technologies, unit operations, and processes.

references : https://www.process-design-center.com/prosyn/, https://dev.prosyn.eu/, year : 1985

year_deployed : 1985
range_deployed : 1985-2022
range_development : 1985-2022

use : in-House use / Licensed. Some parts will be publicly accessible via dev.prosyn.eu





contact : Edison Mera
address : Paardeweide 7, 4824EH, Breda
telephone : +31765301904
email : support@process-design-center.com
prolog : SWI-prolog
platform : linux
other_languages : Fortran, C, Javascript
lines (lines): 1000000
predicates (QTY): 22000
development_effort (MY): 300
maintenance_effort (MY): 2

project : pykythe

Project Description References Dates People Resources
pykythe domain : Type inferencer and code analyzer for Python
purpose : Analyzes a Python program and its imports, and generates a database of facts (using the Kythe data schema), which can be used by code browsers, refactoring tools, etc.
description : Uses Python's library to generate an AST, which is then processed by a Prolog program. The analyzer makes multiple passes over the AST, doing a kind of abstract interpretation that computes possible types for each name in the program. Each pass refines the possibilities until a fixed point is reached. The resulting analysis is then output using the Kythe schema. The code runs in a highly parallel system that automatically caches the results of imported sources - there's no need to do a pre-analysis and analyze the code ''bottom up''. Also includes a client-server source browser.

references : https://github.com/kamahen/pykythe, , https://kythe.io/, year : 2017

year_deployed : 2017
range_deployed : 2018
range_development : 2017-2019

use : ''Alpha'' proof-of-concept / Free/public domain





contact : Peter Ludemann
address : 1582 Wistaria Ln, Los Altos CA 94024 USA
telephone : +1.650.305.9193
email : peter.ludemann@gmail.com
prolog : SWI-Prolog
platform : Linux
other_languages : Python, JavaScript
lines (lines): 7000 Prolog, 4700 Python, 800 JavaScript
predicates (QTY): 850
development_effort (MY): 0.5

project : RAHFT

Project Description References Dates People Resources
RAHFT domain : programming research tools
purpose : Refinement of Abstraction in Horn clauses using Finite Tree automata (RAHFT)
description : RAHFT (Refinement of Abstraction in Horn clauses using Finite Tree automata), is an abstraction refinement tool for verifying safety properties of programs expressed as Horn clauses. Rahft loosely combines three powerful techniques for program verification: (i) program specialisation, (ii) abstract interpretation, and (iii) trace abstraction refinement in a non-trivial way, with the aim of exploiting their strengths and mitigating their weaknesses through the complementary techniques. It is interfaced with an abstract domain, a tool for manipulating finite tree automata and various solvers for reasoning about constraints. Its modular design and customizable components allows for experimenting with new verification techniques and tools developed for Horn clauses. Developers: John Gallagher (Roskidle University), Bishoksan Kafle (Roskidle University), and José Francisco Morales (UPM and IMDEA Software).

references :
[1]
https://github.com/bishoksan/RAHFT,
[2]
Horn clause verification with convex polyhedral abstraction and tree automata-based refinement by Bishoksan Kafle and John P. Gallagher in COMLAN 2015 ( http://www.sciencedirect.com/science/article/pii/S1477842415000822, ).
[3]
Tree Automata-Based Refinement with Application to Horn Clause Verification by Bishoksan Kafle and John P. Gallagher in VMCAI 2015 ( http://link.springer.com/chapter/10.1007%2F978-3-662-46081-8_12#page-1, ).
[4]
Constraint Specialisation in Horn Clause Verification by Bishoksan Kafle and John P. Gallagher in PEPM 2015 ( http://akira.ruc.dk/~kafle/publications/pepm-15, ).
[5]
Rahft: A tool for verifying Horn clauses using abstract interpretation and finite tree automata by Bishoksan Kafle, John P. Gallagher and Jose F. Morales, CAV 2016.
year : 2016

year_deployed : 2016

range_development : 2016-present

use : Open source, Apache-2.0 license





contact : Jose F. Morales


email : josef.morales@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 76383



project : Recovup

Project Description References Dates People Resources
Recovup domain : Health
purpose : Assistance in generating self-help exercises (Musculoskeletal disorders)
description : Web Application developed mainly in Prolog and PHP. Allows to generate self-rehabilitation exercises in response to 12 physical pathologies (ankle sprains, low back pain, etc...) Uses medical consensus rules and recommendations from physical therapists

references : See https://recovup.io/, web site year : 2021

year_deployed : 2021



use : Personal use/ in-House use / Free/public domain/ Licensed/ Sold product ... and/or more information





contact : Dr Mehdi Roudesli
address : address
telephone : +xxxxxxxxxxx
email : m.roudesli@skeewai.com
prolog : SWI prolog
platform : On line
other_languages : PHP
lines (lines): 3400
predicates (QTY): 100
development_effort (MY): 18 m/y
maintenance_effort (MY): 0.5

project : Rfuzzy

Project Description References Dates People Resources
Rfuzzy domain : Expert systems, Programming, Tools
purpose : Simple and Expressive Fuzzy Tool
description : Rfuzzy is a Prolog-based tool for representing and reasoning with fuzzy information. It provides an easy, user-friendly syntax, and expressivity through the availability of default values (to represent missing information, even partial default values) and types. Rfuzzy represents the truth value of predicates through facts, rules and functions. Rfuzzy answers queries with direct results (instead of constraints) and it is easy to use for any person that wishes to represent a problem using fuzzy reasoning in a simple way. Developers: Alvaro Fernandez-Diaz, Susana Munoz-Hernandez, Victor Pablos-Ceruelo, Hannes Strass.

references :
[1]
https://github.com/FuzzyLP/RFuzzy,
year : 2008

year_deployed : 2008

range_development : 2008-2018

use : Open source, LGPL





contact : Susana Munoz
address : Technical U. of Madrid

email : susana.munoz@upm.es
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 3800



project : s(CASP)

Project Description References Dates People Resources
s(CASP) domain : Programming, Research, Tools
purpose : The s(CASP) system is a top-down interpreter for ASP programs with constraints
description : s(CASP) is an implementation of the stable model semantics for constraint logic programming. Unlike similar (e.g., ASP) systems, it does not employ any form of grounding. This allows s(CASP) to execute programs that are not finitely groundable, including those which make use of lists and terms. In addition to models / answer sets, s(CASP) produces justification trees. s(CASP) was originally developed in Ciao Prolog and has also been ported to SWI Prolog. There is also an s(CASP) playground for light use of the system without installation.

references :
[1]
Repo: https://gitlab.software.imdea.org/ciao-lang/sCASP,
[2]
s(CASP) playground: https://ciao-lang.org/playground/scasp.html,
[3]
Joaquín Arias, Manuel Carro, Elmer Salazar, Kyle Marple, and Gopal Gupta. Constraint Answer Set Programming without Grounding. Theory Pract. Log. Program. 18(3-4): 337-354 (2018)
year : 2017

year_deployed : 2017

range_development : 2017-present

use : Academic and commercial





contact : Joaquin Arias


email : joaquin.arias@urjc.es
prolog : Ciao, SWI
platform : mac, linux, windows/WSL, ...

lines (lines): 29095



project : SIGOLI

Project Description References Dates People Resources
SIGOLI domain : computational molecular biology
purpose : A methodology for discovery of diagnostic short DNA fragments, which after having solved spectacularly the problem that initially motivated it (plant pathogen identification) revealed itself also successful in surprisingly many other areas, including coronaviruses detection.
description : N.B. I cannot call it a Prolog application since, while it was prototyped in Prolog and benefitted from my years of experience with computational linguistics and logic grammars, it ended up not being implemented in Prolog, sigh. So I'm not even sure this should be listed, but here goes just in case. DESCRIPTION: A methodology for discovery of diagnostic short DNA fragments (SIGOLI for SIGnature OLIgonucleotides
[1]
was originally developed for rapid plant pathogen identification and detection from those short signature DNAs. This reduced what used to be weeks or months of work at Agriculture and AgriFood Canada to a few minutes of computing. This approach has been used extensively for a wide range of plant pathogen identification [2,3,4,5,6,7], but also for detecting fraudulent fish sales
[8]
, to identify hosts that mosquitoes have been feeding on
[9]
or even monitor biodegradation of organic wastes
[11]
. SIGOLI was recently integrated into an Automated Oligonucleotide Design Pipeline (AODP) to handle identification and detection from exponentially increasing DNA High Throughput Sequencing data
[12]
. Thus integrated, it has been used already for plant pathogen detection
[13]
but also for describing new species of fungi parasitizing insects
[14]
. It is now included into a software for virus diagnostics, including corona viruses ( https://www.virtool.ca/docs/manual/sources/papers/, ).

references :
[1]
[ZDCL2009] Zahariev, M., Dahl, V., Chen, W. and Levesque, A. (2009) Efficient Algorithms for the Discovery of Oligonucleotide Barcoded from Sequence Databases. International Journal on Molecular Ecology Resources.
[2]
Chen, W., Djama, Z.R., Coffey, M.D., Martin, F.N., Bilodeau, G.J., Radmer, L., Denton, G., and André Lévesque, C. (2013). Membrane-based oligonucleotide array developed from multiple markers for the detection of many Phytophthora species. Phytopathology 103, 43-54.
10.
1094/PHYTO-04-12-0092-R.
[3]
Chen, W., Seifert, K.A., and LÉvesque, C.A. (2009). A high density COX1 barcode oligonucleotide array for identification and detection of species of Penicillium subgenus enicillium. Molecular Ecology Resources 9, 114-129.
10.
1111/j.1755-0998.2009.02638.x.
[4]
Links, M.G., Demeke, T., Gräfenhan, T., Hill, J.E., Hemmingsen, S.M., and Dumonceaux, T.J. (2014). Simultaneous profiling of seed-associated bacteria and fungi reveals antagonistic interactions between microorganisms within a shared epiphytic microbiome on Triticum and Brassica seeds. New Phytologist 202, 542-553.
10.
1111/nph.12693.
[5]
Liu, M., McCabe, E., Chapados, J.T., Carey, J., Wilson, S.K., Tropiano, R., Redhead, S.A., Lévesque, C.A., and Hambleton, S. (2015). Detection and identification of selected cereal rust pathogens by TaqMan® real-time PCR. Canadian Journal of Plant Pathology 37, 92-105.
10.
1080/07060661.2014.999123.
[6]
Pérez-López, E., Olivier, C.Y., Luna-Rodríguez, M., and Dumonceaux, T.J. (2016). Phytoplasma classification and phylogeny based on in silico and in vitro RFLP analysis of cpn60 universal target sequences. International Journal of Systematic and Evolutionary Microbiology 66, 5600-5613.
10.
1099/ijsem.0.001501.
[7]
Pérez-López, E., Rodríguez-Martínez, D., Olivier, C.Y., Luna-Rodríguez, M., and Dumonceaux, T.J. (2017). Molecular diagnostic assays based on cpn60 UT sequences reveal the geographic distribution of subgroup 16SrXIII-(A/I)I phytoplasma in Mexico. Scientific Reports 7, 950.
10.
1038/s41598-017-00895-1.
[8]
Rasmussen Hellberg, R. and Morrissey, M. T. (2011) Advances in DNA-Based Techniques for the Detection of Seafood Species Substitution on the Commercial Market. J. Laboratory Automation, 16:4,308-321.
[9]
Thiemann, T.C., Brault, A.C., Ernest, H.B., and Reisen, W.K. (2012). Development of a high-throughput microsphere-based molecular assay to identify 15 common bloodmeal hosts of Culex mosquitoes. Molecular Ecology Resources 12, 238-246.
10.
1111/j.1755-0998.2011.03093.x.
[10]
Froese, A., Schellenberg, J., and Sparling, R. (2019). Enhanced depolymerization and utilization of raw lignocellulosic material by co-cultures of ruminiclostridium thermocellum with hemicellulose-utilizing partners. Canadian Journal of Microbiology 65, 296-307.
10.
1139/cjm-2018-0535.
[11]
Chen, W., Radford, D., and Hambleton, S. (2022). Towards Improved Detection and Identification of Rust Fungal Pathogens in Environmental Samples Using a Metabarcoding Approach. Phytopathology 112, 535-548.
10.
1094/PHYTO-01-21-0020-R.
[12]
Zahariev, M., Chen, W., Visagie, C.M., and Lévesque, C.A. (2018). Cluster oligonucleotide signatures for rapid identification by sequencing. BMC Bioinformatics 19, 395.
10.
1186/s12859-018-2363-3.
[13]
Sundberg, H., Kruys, Å., Bergsten, J., and Ekman, S. (2021). Coreomyces (Laboulbeniales) in Sweden, with two new species. Nordic Journal of Botany 39, e03323.
10.
1111/njb.03323.
[14]
Shoukouhi, P., Hicks, C., Menzies, J.G., Popovic, Z., Chen, W., Seifert, K.A., Assabgui, R., and Liu, M. (2019). Phylogeny of Canadian ergot fungi and a detection assay by real-time polymerase chain reaction. Mycologia 111, 493-505.
10.
1080/00275514.2019.1581018.
year : 2007

year_deployed : 2007
range_deployed : 2007-2009
range_development : 2018

use : Personal use/ in-House use / Free/public domain/ Licensed/ Sold product ... and/or more information





contact : Veronica Dahl
address : Comp. Sci, SFU
telephone : +xxxxxxxxxxx
email : veronica_dahl@sfu.ca
prolog : prolog
platform : windows
other_languages : java
lines (lines): 1
predicates (QTY): 1
development_effort (MY): 4
maintenance_effort (MY): 4

project : SIIUE

Project Description References Dates People Resources
SIIUE domain : Higher Education institutional management and daily operations
purpose : Run the entire information system for a University, including all aspects of academic and research-related activity
description : The system revolves around 3 main components: (1) Contextual Logic Programming as implemented by GNU Prolog/CX
[1]
, (2) persistence as provided by a relational database (PostgreSQL, in this case) and seamlessly integrated into Prolog by means of the ISCO DSL
[2]
and an integration into PHP which inlines Prolog code in active web pages. The system was developed and maintained by a team of up to 6 programmers, for over 10 years (2000-1014). It's over 200000 lines of Prolog code, in more than 1300 units (modules), which were all compiled to native code and dynamically linked, on demand, into the running Prolog executable. The system was in daily use by a population of about 7000 students and 1000 staff and faculty, to conduct all academic activity and service the University's regular web site.

references :
[1]
Objective: In minimum context S Abreu, D Diaz - International Conference on Logic Programming, 2003
[2]
Isco: A practical language for heterogeneous information system construction S Abreu - Proceedings of INAP, 2001
[3]
Representing and querying multiple ontologies with contextual logic programming N Lopes, C Fernandes, S Abreu - Computer Science and Information Systems, 2008
year : 2003

year_deployed : 2003
range_deployed : 2003-2012
range_development : 2000-2013

use : in-house; available as open-source





contact : Salvador Abreu
address : U. of Evora

email : spa@uevora.pt
prolog : GNU Prolog/CX
platform : Linux
other_languages : PHP, SQL (Postgres)
lines (lines): 200000
predicates (QTY): 1500
development_effort (MY): 5
maintenance_effort (MY): 5

project : Spacial

Project Description References Dates People Resources
Spacial domain : design expert systems tools
purpose : Spatial reasoner is a top-down interpreter for Building Information Modeling (BIM) models.
description : Building Information Modeling (BIM) is an intelligent 3D model-based process that enables architecture, engineering, and construction (AEC) professionals to plan, design, construct, and manage buildings and infrastructure with greater efficiency and improved workflow. CLP Spatial is an implementation of a Spatial reasoner based on Constraint Logic Programming using CLP(R). Unlike similar systems, it allows the same formalism to express queries regarding ontology, time, changes, and progress, among others. This allows CLP Spatial complex reasoning models that can be used to infer back-forward results. Developers: Joaquín Arias (Rey Juan Carlos University), Seppo Torma (VisuaLynk Oy, Espoo, Finland), Manuel Carro (UPM and IMDEA Software), Gopal Gupta (U. of Texas at Dallas).

references :
[1]
Joaquin Arias, Seppo Torma, Manuel Carro, Gopal Gupta: Building Information Modeling Using Constraint Logic Programming. Theory Pract. Log. Program. 22(5): 723-738 (2022)
year : 2019

year_deployed : 2019

range_development : 2019-present

use : Academic/commercial





contact : Joaquin Arias
address : Rey Juan Carlos University

email : joaquin.arias@urjc.es
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 6534



project : Spectector

Project Description References Dates People Resources
Spectector domain : programming research tools
purpose : Spectector is a tool for reasoning about information flows produced by speculatively executed instructions
description : Spectector is a tool for reasoning about information flows produced by speculatively executed instructions. It takes as input an x64 assembly program (in the Intel or AT&T syntax), and it automatically detects leaks introduced by speculatively executed instructions (or proves their absence). Spectector symbolically executes the program under analysis with respect to a semantics that accounts for the speculative execution's effects. During the symbolic execution, Spectector derives SMT formulae characterizing leaks caused by speculatively executed instructions. It then relies on the Z3 SMT solver to determine the presence of possible leaks. More precisely, Spectector automatically proves whether a program satisfies speculative non-interference. Using Spectector, it is possible to detect subtle bugs in the way countermeasures are placed by several major compilers, which may result in insecure programs or unnecessary countermeasures. See the Spectector's paper for more information. Developers: Marco Guarnieri (IMDEA Software), Boris Koepf (Microsoft), José F. Morales (IMDEA Software), Jan Reineke (Saarland University), Andrés Sánchez (IMDEA Software).

references :
[1]
https://github.com/spectector/spectector,
[2]
Marco Guarnieri, Boris Köpf, José F. Morales, Jan Reineke, Andrés Sánchez: Spectector: Principled Detection of Speculative Information Flows. IEEE Symposium on Security and Privacy 2020:
1-
19
year : 2018

year_deployed : 2018

range_development : 2018-2020

use : Open source, Apache-2.0 license





contact : Jose F. Morales


email : josef.morales@imdea.org
prolog : Ciao
platform : mac, linux, windows/WSL, ...

lines (lines): 2272



project : SWISH

Project Description References Dates People Resources
SWISH domain : Prolog education and sharing
purpose : Provide an online educational environment as well as a shared data exploration environment
description : SWISH provides an online environment for developing Prolog code. Programs may be entered as plain text or as a ''notebook'' that allows for mixing code, queries and text. SWISH allows rendering Prolog results as text, charts, tables, graphs, etc. SWISH can also be used for (shared) data exploration. It includes an interface to R for statistical analysis and (graphical) display of results.

references : WIELEMAKER, J., RIGUZZI, F., KOWALSKI, R., LAGER, T., SADRI, F., & CALEJO, M. (2019). Using SWISH to Realize Interactive Web-based Tutorials for Logic-based Languages. Theory and Practice of Logic Programming, 19(2), 229-261. doi:10.1017/S1471068418000522 year : 2014

year_deployed : 2014
range_deployed : 2015-
range_development : 2014-2022

use : Open source, many installations





contact : Jan Wielemaker


email : jan@swi-prolog.com
prolog : SWI-Prolog
platform : many
other_languages : JavaScript
lines (lines): 150,000

development_effort (MY): 2
maintenance_effort (MY): 2

project : SWMOD

Project Description References Dates People Resources
SWMOD
purpose : Select the best test-case candidate in real-time. Determine the order and which robot to execute the robot on. Make sure each test-case over time will be executed.
description : Scheduling of test-cases related to software testing of industrial robots.

references : paper in International Conference on Principles and Practice of Constraint Programming : CP 2017: Principles and Practice of Constraint Programming pp 387–404Cite as Time-Aware Test Case Execution Scheduling for Cyber-Physical Systems https://link.springer.com/chapter/10.1007/978-3-319-66158-2_25, year : 2016

year_deployed : 2016



use : in-house





contact : Morten Mossige
address : ABB Robotics, Nordlysvegen 7, 4349 BRYNE, NORWAY
telephone : +4740234475
email : morten.mossige@no.abb.com
prolog : SICStus
platform : Windows
other_languages : Python, C#
lines (lines): 1400
predicates (QTY): number of predicates
development_effort (MY): 1.5
maintenance_effort (MY): 0.1

project : Symbium

Project Description References Dates People Resources
Symbium domain : Computational Law
purpose : Automated compliance management for residential construction
description : Symbium is the ''Computational Law company''. Its primary ''product'' is a web service that facilitates compliance with governmental regulations on residential improvement and construction. The Symbium service provides its users with comprehensive information about residential parcels; it provides instantaneous compliance analysis of proposed changes; and it facilitates transactions with municipalities, counties, states, and other organizations (e.g. permit applications, inspections, rebates, and so forth).Symbium’s contributions have been recognized by multiple awards. The most prominent of these is the Ivory Prize for Housing Affordability, awarded in recognition of the company's work in formalizing planning codes (as logic programs), making the codes available to homeowners, and thereby making it quicker and easier for homeowners to replace appliances, install solar panels, build accessory dwelling units (ADUs), and so forth.Symbium's service is now operational in several California cities; it is working to make the service available across the state in the coming year; and it plans to span the country in the shortly thereafter.

references : http://symbium.com, year : 2018

year_deployed : 2018
range_deployed : 2021-2022
range_development : 2018-2022

use : Data and analysis free; transactions subject to fee.





contact : Michael Genesereth


email : genesereth@stanford.edu
prolog : epilog
platform : all
other_languages : javascript neo4j
lines (lines): 100s / municipality
predicates (QTY): dozens / municipality
development_effort (MY): 1 week / municipality

project : TA scheduler

Project Description References Dates People Resources
TA scheduler domain : Automated Scheduling
purpose : Automatically schedules about 80 teaching assistants to approximately 200 courses taking into account skills, enrollment numbers, etc.
description : Solves an important scheduling problem that every department faces. Deployed internally at UT Dallas CS Department and EE Department since 2004.

year : 2004

year_deployed : 2004
range_deployed : 2004-2022
range_development : 2003-2006

use : internally developed software





contact : Gopal Gupta
address : 800 W. Campbell Rd, MS EC31, Richardson, TX 75080
telephone : +19728834107
email : gupta@utdallas.edu
prolog : prolog
platform : windows
other_languages : C++
lines (lines): 2000
predicates (QTY): 50
development_effort (MY): 1
maintenance_effort (MY): number

project : THORONDIR

Project Description References Dates People Resources
THORONDIR
purpose : THORONDIR identifies radar signatures from measured radar parameter data. It is a rare use of Prolog in a military real-time system requiring a fast response time
description : Rule based system for identification of radar signatures

references : Roe,J.,'Identification of Naval Radar Emitters by KBS Techniques', Proceedings of International Maritime Defence Exhibition and Conference, London, U.K., March 1995., Hawkes,R., Pudner,A. and Roe,J., 'A Real-Time Prolog Solution for Naval ESM Radar Identification', Proceedings of The Practical Application of Prolog Conference, Paris, France, April 1995. year : 1992 - 2022

year_deployed : 1992



use : commercial licence





contact : Jon Roe
address : ESROE LIMITED, Bramble House, 112 Wickham Road, Fareham, Hampshire, PO16 7JH, UK
telephone : +44 7767 834692
email : jon@esroe.com
prolog : SICStus
platform : Windows and Linux
other_languages : N/A
lines (lines): ~ 10,000
predicates (QTY): number of predicates
development_effort (MY): > 10,000 person hours
maintenance_effort (MY): > 5000 person hours

project : TypeInference

Project Description References Dates People Resources
TypeInference domain : programming, tools, research
purpose : Infers a well-typing for a Prolog program.
description : The algorithm collects type constraints from the Prolog code and solves them. Performance is approximately linear in the size of the program.

references : Algorithm description.
[1]
Maurice Bruynooghe, John P. Gallagher, Wouter Van Humbeeck:Inference of Well-Typings for Logic Programs with Application to Termination Analysis. SAS 2005: 35-51. DOI
10.
1007/978-3-540-27775-0_3.
[2]
https://github.com/jpgallagher/TypeInference,
year : 2005

year_deployed : 2005
range_deployed : 2005-2022
range_development : 2005-2022

use : Open source.





contact : John Gallagher
address : Roskilde University
telephone : +45 46742196
email : jpg@ruc.dk
prolog : Ciao Prolog
platform : all
other_languages : Other Prologs with minor changes
lines (lines): 650
predicates (QTY): 50 not including standard libraries
development_effort (MY): 1
maintenance_effort (MY): 1

project : WR2QTP

Project Description References Dates People Resources
WR2QTP domain : Automated Software Porting
purpose : Automatically translate test scripts written in WinRunner (an old test-scripting language) to QTP (a more modern test-scripting language).
description : The software works by parsing the WinRunner program to obtain the parse tree, then semantically mapping it to QTP. These languages have a rich API, so the WinRunner API had to be simulated using QTP API. The product was used by about a dozen customers, the largest of whom translated about 750,000 lines of code in about 9 months time (the translated code still has to be meticulously tested, which takes time). If this was done manually, it would take about 10 man years or more.

references : Gopal Gupta, Hai-Feng Guo, Arthur I. Karshmer, Enrico Pontelli, Juan Raymundo Iglesias, Desh Ranjan, Brook Milligan, Nayana Datta, Omar El-Khatib, Mohammed Noamany, Xinhong Zhou: Semantics-Based Filtering: Logic Programming's Killer App? Proc. PADL 2002: 82-100. year : 2008

year_deployed : 2008
range_deployed : 2009-2016
range_development : 2008-2012

use : sold service





contact : Gopal Gupta
address : 8200 Chambray Ct, Plano, TX 75025
telephone : +19723907329
email : profgopalgupta@gmail.com
prolog : prolog
platform : windows
other_languages : java
lines (lines): 1500
predicates (QTY): 300
development_effort (MY): 1
maintenance_effort (MY): number

project : WUENIC

Project Description References Dates People Resources
WUENIC domain : decision support
purpose : The system is a set of logical rules that assists WHO and UNICEF in estimating annual, global, country by country, infant immunization coverage.
description : The problem is to reconcile inconsistencies when different sources of data conflict - for example when government reported data is inconsistent with survey data. The purpose of the logical rules is to make the reconciliation and estimation process more transparent and more consistent. In addition to helping to ensure transparency and consistency, the Prolog implementation has also proved useful in providing detailed explanation and documentation of the rationale for each of the estimates.

references : There are two articles describing the work.
The first, published in the online journal PLOS-ONE, describes the work for a general audience with little or no computing background.
The second, presented at JURISIN 2011, describes the work for a more academic audience and compares it with previous work on the logical formalisation of the British Nationality Act. Burton, A., Kowalski, R., Gacic-Dobo, M., Karimov, R. and Brown, D., 2012. A formal representation of the WHO and UNICEF estimates of national immunization coverage: a computational logic approach. PLoS One, 7(10), p.e47806. Kowalski, R. and Burton, A., 2011, December. WUENIC–a case study in rule-based knowledge representation and reasoning. In JSAI International Symposium on Artificial Intelligence (pp. 112-125). Springer, Berlin, Heidelberg.
year : 2009-2013

year_deployed : 2009



use : in-house





contact : Robert Kowalski
address : Imperial College London

email : rak@doc.ic.ac.uk
prolog : XSB Prolog
platform : windows
other_languages : R
lines (lines): number
predicates (QTY): number
development_effort (MY): number
maintenance_effort (MY): number

6. RESOURCES BY PROJECT

Warning some errors may occur because of automation.

6.1. Lines and efforts


Lines and efforts
Project
Lines
Predicates
Developpement effort
Maintenance effort
Alpino, 2404087 6374 NA NA
BIOCHAM, 43000
BrailleMath, 2000 300 1 number
CASSANDRA, 60000 10000 2 1
Causality Link, > 100,000 number >10 man-years ongoing
CiaoPP, 118659 (base system, not including libraries), 381428 with extensions and front ends
Cliopatra, 42,000 number 5 1
Company Name Standardizer, 2500 code + 50,000 data ? 0.5 0.5
DeepFind, 3.5K (+ the CiaoPP libraries)
DES, 67K 4.2K 0.1 0.1
EMDS, number number number number
Energy Analyzer, 2186 (front end in Python) + 144240 (energy analysis in Prolog)
ErgoAI, 10000 1000 20 20
ETALIS, 5000 200 10 10
Ews, 3500 1500 2200 4 1
EYE, 10000 1000 2 4
Flex Expert System toolkit, 5000 150 20 1
FSA Utilities, 23000 without the examples 2099 NA NA
FTCLP, 27275
gamemaster, 1000s 1000s 10s
GTO, 7000 400
IBM Watson, 5000 400 10 10
KALM, 5000 1000 5 5
LHornSolver, 4533
LPdoc, 25781 (+ libraries)
MetaMap, 166,465 2,829 25 years 200 hours/year
Michelson Cost Analyzer, 37867
MOVIS, number of lines of code Basic libraries provided, the rest is generated from diagrams 3000 Hard to define, we constantly improve the products (Designer for code generation, Xplorer for testing rule models, Service for executing models in production,
Muasm, 1816
NeuralTax, 5000 100 3 3
NtHorn, 19500
ODE Classifier, c. 13,000+libraries ? 0.5 0.5
ODE Constructor, 10,000 + libraries ? c. 1.0 c. 0.5
Pacioli, 12000 1900 2 1
PECOS, 5704
Pi, 5500 480
PI-Horn, 63454
Price Grouper, ~2400 ~65 0.4 0.2
ProB, 145038l lines, % only Prolog code excluding comment lines, measured using cloc for ProB 1.11.1; in addition 78,784 lines of C,C++ and 32803 lines of Tcl/Tk 18588 50 person-years(!) N/A
Prolog Playground, 10453
Property Extractor, 1500 + libraries ? c. 0.5 c. 0.2
PROSYN, 1000000 22000 300 2
pykythe, 7000 Prolog, 4700 Python, 800 JavaScript 850 0.5
RAHFT, 76383
Recovup, 3400 100 18 m/y 0.5
Rfuzzy, 3800
s(CASP), 29095
SIGOLI, 1 1 4 4
SIIUE, 200000 1500 5 5
Spacial, 6534
Spectector, 2272
SWISH, 150,000 2 2
SWMOD, 1400 number of predicates 1.5 0.1
Symbium, 100s / municipality dozens / municipality 1 week / municipality
TA scheduler, 2000 50 1 number
THORONDIR, ~ 10,000 number of predicates > 10,000 person hours > 5000 person hours
TypeInference, 650 50 not including standard libraries 1 1
WR2QTP, 1500 300 1 number
WUENIC, number number number number

6.2. Language used


Language statistics :
Language/tool
Quantity
Projects
ciao 18 CiaoPP, DeepFind, Energy Analyzer, FTCLP, LHornSolver, LPdoc, Michelson Cost Analyzer, Muasm, NtHorn, PECOS, PI-Horn, Prolog Playground, RAHFT, Rfuzzy, Spacial, Spectector, TypeInference, s(CASP)
sicstus 11 Alpino, DES, FSA Utilities, GTO, IBM Watson, MOVIS, MetaMap, Pi, ProB, SWMOD, THORONDIR
swi 12 Alpino, Cliopatra, DES, EYE, FSA Utilities, IBM Watson, PROSYN, Pacioli, Recovup, SWISH, pykythe, s(CASP)
unknown 13 BIOCHAM, BrailleMath, CASSANDRA, Causality Link, EMDS, Ews, Flex Expert System toolkit, SIGOLI, SIIUE, Symbium, TA scheduler, WR2QTP, gamemaster
xsb 11 Company Name Standardizer, ETALIS, ErgoAI, IBM Watson, KALM, NeuralTax, ODE Classifier, ODE Constructor, Price Grouper, Property Extractor, WUENIC

Languages and tools
Name
Language/tool
Platform
Other languages
Alpino SICStus 3; SWI-Prolog 6 Windows, Linux, macOS (distributed as a Docker image) C, C++, Perl, Python, Go, tcl/tk
BIOCHAM prolog web server, docker image,linux, Mac OS, windows C++
BrailleMath prolog windows C++
CASSANDRA LPA WinProlog Windows XML/XSL, COM
Causality Link prolog windows, AWS Java, C, javscript, etc
CiaoPP Ciao mac, linux, windows/WSL, ...
Cliopatra SWI-Prolog many JavaScript
Company Name Standardizer XSB Prolog windows,linux SQL-DB
DeepFind Ciao mac, linux, windows/WSL, ...
DES SICStus Prolog, SWI-Prolog Multiplatform Java, JavaScript, HTML
EMDS prolog windows C
Energy Analyzer Ciao mac, linux, windows/WSL, ...
ErgoAI XSB Prolog Linux C, Java, python
ETALIS XSB prolog windows java
Ews Win-prolog windows jSQL, C, OLE
EYE SWI-Prolog Linux, MacOS and Windows
Flex Expert System toolkit prolog windows java
FSA Utilities SICStus 3, SWI-Prolog 6, YAP Windows, Linux, macOS NA
FTCLP Ciao mac, linux, windows/WSL, ...
gamemaster Epilog any javascript, java
GTO SICStus all C, Tcl/Tk
IBM Watson Sicstus Prolog, XSB, SWI windows java
KALM XSB Prolog windows java, python
LHornSolver Ciao mac, linux, windows/WSL, ...
LPdoc Ciao mac, linux, windows/WSL, browser, ...
MetaMap SICStus Windows (via Docker), Linux, macOS C, C++, Java
Michelson Cost Analyzer Ciao mac, linux, windows/WSL, ...
MOVIS SICStus Windows C#, Java
Muasm Ciao mac, linux, windows/WSL, ...
NeuralTax ErgoAI, XSB prolog windows java
NtHorn Ciao mac, linux, windows/WSL, ...
ODE Classifier XSB Prolog windows,linux Java
ODE Constructor XSB Prolog windows+linux interfaces to Java, XJ
Pacioli SWI-Prolog web Javascript
PECOS Ciao mac, linux, windows/WSL, ...
Pi SICStus Unix/Linux None
PI-Horn Ciao mac, linux, windows/WSL, ...
Price Grouper XSB Prolog windows,linux
ProB SICStus Windows, Linux, macOS C, C++, Tcl/Tk, Java
Prolog Playground Ciao Any browser (mac, linux, windows, IOS, android, ...)
Property Extractor XSB Prolog windows+linux interfaces to Java
PROSYN SWI-prolog linux Fortran, C, Javascript
pykythe SWI-Prolog Linux Python, JavaScript
RAHFT Ciao mac, linux, windows/WSL, ...
Recovup SWI prolog On line PHP
Rfuzzy Ciao mac, linux, windows/WSL, ...
s(CASP) Ciao, SWI mac, linux, windows/WSL, ...
SIGOLI prolog windows java
SIIUE GNU Prolog/CX Linux PHP, SQL (Postgres)
Spacial Ciao mac, linux, windows/WSL, ...
Spectector Ciao mac, linux, windows/WSL, ...
SWISH SWI-Prolog many JavaScript
SWMOD SICStus Windows Python, C#
Symbium epilog all javascript neo4j
TA scheduler prolog windows C++
THORONDIR SICStus Windows and Linux N/A
TypeInference Ciao Prolog all Other Prologs with minor changes
WR2QTP prolog windows java
WUENIC XSB Prolog windows R

6.3. Platform used


stats done ok
Platform statistics :
Platform
Quantity
Projects
any 8 Cliopatra, DES, GTO, Prolog Playground, SWISH, Symbium, TypeInference, gamemaster
apple 23 Alpino, BIOCHAM, CiaoPP, DeepFind, EYE, Energy Analyzer, FSA Utilities, FTCLP, LHornSolver, LPdoc, MetaMap, Michelson Cost Analyzer, Muasm, NtHorn, PECOS, PI-Horn, ProB, Prolog Playground, RAHFT, Rfuzzy, Spacial, Spectector, s(CASP)
linux 34 Alpino, BIOCHAM, CiaoPP, Company Name Standardizer, DeepFind, EYE, Energy Analyzer, ErgoAI, FSA Utilities, FTCLP, LHornSolver, LPdoc, MetaMap, Michelson Cost Analyzer, Muasm, NtHorn, ODE Classifier, ODE Constructor, PECOS, PI-Horn, PROSYN, Pi, Price Grouper, ProB, Prolog Playground, Property Extractor, RAHFT, Rfuzzy, SIIUE, Spacial, Spectector, THORONDIR, pykythe, s(CASP)
unknown 0
web 5 BIOCHAM, LPdoc, Pacioli, Prolog Playground, Recovup
windows 45 Alpino, BIOCHAM, BrailleMath, CASSANDRA, Causality Link, CiaoPP, Company Name Standardizer, DeepFind, EMDS, ETALIS, EYE, Energy Analyzer, Ews, FSA Utilities, FTCLP, Flex Expert System toolkit, IBM Watson, KALM, LHornSolver, LPdoc, MOVIS, MetaMap, Michelson Cost Analyzer, Muasm, NeuralTax, NtHorn, ODE Classifier, ODE Constructor, PECOS, PI-Horn, Price Grouper, ProB, Prolog Playground, Property Extractor, RAHFT, Rfuzzy, SIGOLI, SWMOD, Spacial, Spectector, TA scheduler, THORONDIR, WR2QTP, WUENIC, s(CASP)